
L1: 8b ff ?? mov edi, edi
 55 ?? push ebp
 8b ec ?? mov ebp, esp
 51 ?? push ecx
 56 ?? push esi
 8b 75 0c ?? mov esi, dword ss:[ebp + 12]
 56 ?? push esi
 e8 05 49 00 00 ?? call function 0x00415073

L2: 89 45 0c ?? mov dword ss:[ebp + 12], eax
 8b 46 0c ?? mov eax, dword ds:[esi + 12]
 59 ?? pop ecx
 a8 82 ?? test al, 0x82<130,-126>
 75 17 ?? jne basic block L6

L3: e8 19 d9 ff ff ?? call function 0x0040e097

L4: c7 00 09 00 00 00 ?? mov dword ds:[eax], 9

L5: 83 4e 0c 20 ?? or dword ds:[esi + 12], 0x20<32>
 83 c8 ff ?? or eax, 0xff<255,-1>
 e9 2f 01 00 00 ?? jmp basic block L41

L6: a8 40 ?? test al, 0x40<64>
 74 0d ?? je basic block L9

L7: e8 fe d8 ff ff ?? call function 0x0040e097

L8: c7 00 22 00 00 00 ?? mov dword ds:[eax], 0x00000022<34>
 eb e3 ?? jmp basic block L5

L9: 53 ?? push ebx
 33 db ?? xor ebx, ebx
 a8 01 ?? test al, 1
 74 16 ?? je basic block L12

L10: 89 5e 04 ?? mov dword ds:[esi + 4], ebx
 a8 10 ?? test al, 0x10<16>
 0f 84 87 00 00 00 ?? je basic block L25

L11: 8b 4e 08 ?? mov ecx, dword ds:[esi + 8]
 83 e0 fe ?? and eax, 0xfe<254,-2>
 89 0e ?? mov dword ds:[esi], ecx
 89 46 0c ?? mov dword ds:[esi + 12], eax

L12: 8b 46 0c ?? mov eax, dword ds:[esi + 12]
 83 e0 ef ?? and eax, 0xef<239,-17>
 83 c8 02 ?? or eax, 2
 89 46 0c ?? mov dword ds:[esi + 12], eax
 89 5e 04 ?? mov dword ds:[esi + 4], ebx
 89 5d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ebx
 a9 0c 01 00 00 ?? test eax, 0x0000010c<268>
 75 2c ?? jne basic block L21

L13: e8 d8 b0 ff ff ?? call function 0x0040b8b4

L14: 83 c0 20 ?? add eax, 0x20<32>
 3b f0 ?? cmp esi, eax
 74 0c ?? je basic block L17

L15: e8 cc b0 ff ff ?? call function 0x0040b8b4

L16: 83 c0 40 ?? add eax, 0x40<64>
 3b f0 ?? cmp esi, eax
 75 0d ?? jne basic block L19

L17: ff 75 0c ?? push dword ss:[ebp + 12]
 e8 8e 1f 01 00 ?? call function 0x00422785

L18: 59 ?? pop ecx
 85 c0 ?? test eax, eax
 75 07 ?? jne basic block L21

L19: 56 ?? push esi
 e8 a3 48 00 00 ?? call function 0x004150a5

L20: 59 ?? pop ecx

L21: f7 46 0c 08 01 00 00 ?? test dword ds:[esi + 12], 0x00000108<264>
 57 ?? push edi
 0f 84 80 00 00 00 ?? je basic block L34

L22: 8b 46 08 ?? mov eax, dword ds:[esi + 8]
 8b 3e ?? mov edi, dword ds:[esi]
 8d 48 01 ?? lea ecx, ds:[eax + 1]
 89 0e ?? mov dword ds:[esi], ecx
 8b 4e 18 ?? mov ecx, dword ds:[esi + 0x18<24>]
 2b f8 ?? sub edi, eax
 49 ?? dec ecx
 3b fb ?? cmp edi, ebx
 89 4e 04 ?? mov dword ds:[esi + 4], ecx
 7e 1d ?? jle basic block L26

L23: 57 ?? push edi
 50 ?? push eax
 ff 75 0c ?? push dword ss:[ebp + 12]
 e8 ef 4f 00 00 ?? call function 0x00415821

L24: 83 c4 0c ?? add esp, 12
 89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
 eb 4d ?? jmp basic block L33

L25: 83 c8 20 ?? or eax, 0x20<32>
 89 46 0c ?? mov dword ds:[esi + 12], eax
 83 c8 ff ?? or eax, 0xff<255,-1>
 eb 79 ?? jmp basic block L40

L26: 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
 83 f9 ff ?? cmp ecx, 0xff<255,-1>
 74 1b ?? je basic block L29

L27: 83 f9 fe ?? cmp ecx, 0xfe<254,-2>
 74 16 ?? je basic block L29

L28: 8b c1 ?? mov eax, ecx
 83 e0 1f ?? and eax, 0x1f<31>
 8b d1 ?? mov edx, ecx
 c1 fa 05 ?? sar edx, 5
 c1 e0 06 ?? shl eax, 6
 03 04 95 c0 6b 44 00 ?? add eax, dword ds:[0x00446bc0 + edx * 4]
 eb 05 ?? jmp basic block L30

L29: b8 50 4b 44 00 ?? mov eax, 0x00444b50

L30: f6 40 04 20 ?? test byte ds:[eax + 4], 0x20<32>
 74 14 ?? je basic block L33

L31: 6a 02 ?? push 2
 53 ?? push ebx
 53 ?? push ebx
 51 ?? push ecx
 e8 ef 1d 01 00 ?? call function 0x0042266c

L32: 23 c2 ?? and eax, edx
 83 c4 10 ?? add esp, 0x10<16>
 83 f8 ff ?? cmp eax, 0xff<255,-1>
 74 25 ?? je basic block L37

L33: 8b 46 08 ?? mov eax, dword ds:[esi + 8]
 8a 4d 08 ?? mov cl, byte ss:[ebp + 8]
 88 08 ?? mov byte ds:[eax], cl
 eb 16 ?? jmp basic block L36

L34: 33 ff ?? xor edi, edi
 47 ?? inc edi
 57 ?? push edi
 8d 45 08 ?? lea eax, ss:[ebp + 8]
 50 ?? push eax
 ff 75 0c ?? push dword ss:[ebp + 12]
 e8 80 4f 00 00 ?? call function 0x00415821

L35: 83 c4 0c ?? add esp, 12
 89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax

L36: 39 7d fc ?? cmp dword ss:[ebp + 0xfc<252,-4>], edi
 74 09 ?? je basic block L38

L37: 83 4e 0c 20 ?? or dword ds:[esi + 12], 0x20<32>
 83 c8 ff ?? or eax, 0xff<255,-1>
 eb 08 ?? jmp basic block L39

L38: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 25 ff 00 00 00 ?? and eax, 0x000000ff<255>

L39: 5f ?? pop edi

L40: 5b ?? pop ebx

L41: 5e ?? pop esi
 c9 ?? leave
 c3 ?? ret

