
L1: 55 ?? push ebp
 8b ec ?? mov ebp, esp
 83 ec 1c ?? sub esp, 0x1c<28>
 89 7d f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], edi
 89 75 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], esi
 89 5d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ebx
 8b 5d 0c ?? mov ebx, dword ss:[ebp + 12]
 8b c3 ?? mov eax, ebx
 99 ?? cdq
 8b c8 ?? mov ecx, eax
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 33 ca ?? xor ecx, edx
 2b ca ?? sub ecx, edx
 83 e1 0f ?? and ecx, 15
 33 ca ?? xor ecx, edx
 2b ca ?? sub ecx, edx
 99 ?? cdq
 8b f8 ?? mov edi, eax
 33 fa ?? xor edi, edx
 2b fa ?? sub edi, edx
 83 e7 0f ?? and edi, 15
 33 fa ?? xor edi, edx
 2b fa ?? sub edi, edx
 8b d1 ?? mov edx, ecx
 0b d7 ?? or edx, edi
 75 4a ?? jne basic block L7

L2: 8b 75 10 ?? mov esi, dword ss:[ebp + 0x10<16>]
 8b ce ?? mov ecx, esi
 83 e1 7f ?? and ecx, 0x7f<127>
 89 4d e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], ecx
 3b f1 ?? cmp esi, ecx
 74 13 ?? je basic block L5

L3: 2b f1 ?? sub esi, ecx
 56 ?? push esi
 53 ?? push ebx
 50 ?? push eax
 e8 27 ff ff ff ?? call function 0x0040f819

L4: 83 c4 0c ?? add esp, 12
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 8b 4d e8 ?? mov ecx, dword ss:[ebp + 0xe8<232,-24>]

L5: 85 c9 ?? test ecx, ecx
 74 77 ?? je basic block L11

L6: 8b 5d 10 ?? mov ebx, dword ss:[ebp + 0x10<16>]
 8b 55 0c ?? mov edx, dword ss:[ebp + 12]
 03 d3 ?? add edx, ebx
 2b d1 ?? sub edx, ecx
 89 55 ec ?? mov dword ss:[ebp + 0xec<236,-20>], edx
 03 d8 ?? add ebx, eax
 2b d9 ?? sub ebx, ecx
 89 5d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ebx
 8b 75 ec ?? mov esi, dword ss:[ebp + 0xec<236,-20>]
 8b 7d f0 ?? mov edi, dword ss:[ebp + 0xf0<240,-16>]
 8b 4d e8 ?? mov ecx, dword ss:[ebp + 0xe8<232,-24>]
 f3 a4 ?? rep_movsb
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 eb 53 ?? jmp basic block L11

L7: 3b cf ?? cmp ecx, edi
 75 35 ?? jne basic block L10

L8: f7 d9 ?? neg ecx
 83 c1 10 ?? add ecx, 0x10<16>
 89 4d e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], ecx
 8b 75 0c ?? mov esi, dword ss:[ebp + 12]
 8b 7d 08 ?? mov edi, dword ss:[ebp + 8]
 8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
 f3 a4 ?? rep_movsb
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 03 4d e4 ?? add ecx, dword ss:[ebp + 0xe4<228,-28>]
 8b 55 0c ?? mov edx, dword ss:[ebp + 12]
 03 55 e4 ?? add edx, dword ss:[ebp + 0xe4<228,-28>]
 8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
 2b 45 e4 ?? sub eax, dword ss:[ebp + 0xe4<228,-28>]
 50 ?? push eax
 52 ?? push edx
 51 ?? push ecx
 e8 4c ff ff ff ?? call basic block L1

L9: 83 c4 0c ?? add esp, 12
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 eb 1a ?? jmp basic block L11

L10: 8b 75 0c ?? mov esi, dword ss:[ebp + 12]
 8b 7d 08 ?? mov edi, dword ss:[ebp + 8]
 8b 4d 10 ?? mov ecx, dword ss:[ebp + 0x10<16>]
 8b d1 ?? mov edx, ecx
 c1 e9 02 ?? shr ecx, 2
 f3 a5 ?? rep_movsd
 8b ca ?? mov ecx, edx
 83 e1 03 ?? and ecx, 3
 f3 a4 ?? rep_movsb
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]

L11: 8b 5d fc ?? mov ebx, dword ss:[ebp + 0xfc<252,-4>]
 8b 75 f8 ?? mov esi, dword ss:[ebp + 0xf8<248,-8>]
 8b 7d f4 ?? mov edi, dword ss:[ebp + 0xf4<244,-12>]
 8b e5 ?? mov esp, ebp
 5d ?? pop ebp
 c3 ?? ret

