
L1: 6a 58 ?? push 0x58<88>
 b8 77 99 42 00 ?? mov eax, 0x00429977
 e8 94 27 00 00 ?? call function 0x00406b03

L2: 8b f1 ?? mov esi, ecx
 8b 46 20 ?? mov eax, dword ds:[esi + 0x20<32>]
 8b 00 ?? mov eax, dword ds:[eax]
 85 c0 ?? test eax, eax
 74 28 ?? je basic block L7

L3: 8b 46 20 ?? mov eax, dword ds:[esi + 0x20<32>]
 8b 4e 30 ?? mov ecx, dword ds:[esi + 0x30<48>]
 8b 00 ?? mov eax, dword ds:[eax]
 8b 09 ?? mov ecx, dword ds:[ecx]
 03 c8 ?? add ecx, eax
 3b c1 ?? cmp eax, ecx
 73 18 ?? jae basic block L7

L4: 8b 46 30 ?? mov eax, dword ds:[esi + 0x30<48>]
 ff 08 ?? dec dword ds:[eax]
 8b 76 20 ?? mov esi, dword ds:[esi + 0x20<32>]
 8b 06 ?? mov eax, dword ds:[esi]
 8d 48 01 ?? lea ecx, ds:[eax + 1]
 89 0e ?? mov dword ds:[esi], ecx
 0f b6 00 ?? movzx eax, byte ds:[eax]

L5: e8 e5 27 00 00 ?? call function 0x00406b86

L6: c3 ?? ret

L7: 8b 46 4c ?? mov eax, dword ds:[esi + 0x4c<76>]
 85 c0 ?? test eax, eax
 75 05 ?? jne basic block L9

L8: 83 c8 ff ?? or eax, 0xff<255,-1>
 eb ee ?? jmp basic block L5

L9: 83 7e 3c 00 ?? cmp dword ds:[esi + 0x3c<60>], 0
 75 16 ?? jne basic block L13

L10: 50 ?? push eax
 8d 45 d3 ?? lea eax, ss:[ebp + 0xd3<211,-45>]
 50 ?? push eax
 e8 71 fb ff ff ?? call function 0x00403f2f

L11: 59 ?? pop ecx
 59 ?? pop ecx
 84 c0 ?? test al, al
 74 e5 ?? je basic block L8

L12: 0f b6 45 d3 ?? movzx eax, byte ss:[ebp + 0xd3<211,-45>]
 eb d2 ?? jmp basic block L5

L13: 8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
 e8 bb fa ff ff ?? call function 0x00403e8d

L14: 83 65 fc 00 ?? and dword ss:[ebp + 0xfc<252,-4>], 0
 e9 c2 00 00 00 ?? jmp basic block L33

L15: 50 ?? push eax
 6a 01 ?? push 1
 8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
 e8 ea fe ff ff ?? call function 0x004042d0

L16: 8d 45 bc ?? lea eax, ss:[ebp + 0xbc<188,-68>]
 50 ?? push eax
 8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
 e8 05 fe ff ff ?? call function 0x004041f7

L17: 8b c8 ?? mov ecx, eax
 e8 e9 f3 ff ff ?? call function 0x004037e2

L18: 8b 7d e8 ?? mov edi, dword ss:[ebp + 0xe8<232,-24>]
 8b d8 ?? mov ebx, eax
 8d 45 9c ?? lea eax, ss:[ebp + 0x9c<156,-100>]
 50 ?? push eax
 8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
 e8 ed fd ff ff ?? call function 0x004041f7

L19: 8b c8 ?? mov ecx, eax
 e8 d1 f3 ff ff ?? call function 0x004037e2

L20: 8b 4e 3c ?? mov ecx, dword ds:[esi + 0x3c<60>]
 8b 11 ?? mov edx, dword ds:[ecx]
 89 45 c8 ?? mov dword ss:[ebp + 0xc8<200,-56>], eax
 8d 45 c4 ?? lea eax, ss:[ebp + 0xc4<196,-60>]
 50 ?? push eax
 8d 45 d4 ?? lea eax, ss:[ebp + 0xd4<212,-44>]
 50 ?? push eax
 8d 45 d3 ?? lea eax, ss:[ebp + 0xd3<211,-45>]
 50 ?? push eax
 8d 45 cc ?? lea eax, ss:[ebp + 0xcc<204,-52>]
 50 ?? push eax
 03 fb ?? add edi, ebx
 57 ?? push edi
 ff 75 c8 ?? push dword ss:[ebp + 0xc8<200,-56>]
 8d 46 44 ?? lea eax, ds:[esi + 0x44<68>]
 50 ?? push eax
 ff 52 10 ?? call dword ds:[edx + 0x10<16>]

L21: 85 c0 ?? test eax, eax
 7c 75 ?? jl basic block L35

L22: 33 ff ?? xor edi, edi
 47 ?? inc edi
 3b c7 ?? cmp eax, edi
 7e 31 ?? jle basic block L29

L23: 83 f8 03 ?? cmp eax, 3
 75 69 ?? jne basic block L35

L24: 39 7d e8 ?? cmp dword ss:[ebp + 0xe8<232,-24>], edi
 72 52 ?? jb basic block L33

L25: 8d 45 b4 ?? lea eax, ss:[ebp + 0xb4<180,-76>]
 50 ?? push eax
 8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
 e8 a0 fd ff ff ?? call function 0x004041f7

L26: 57 ?? push edi
 8b c8 ?? mov ecx, eax
 e8 83 f3 ff ff ?? call function 0x004037e2

L27: 50 ?? push eax
 8d 45 d3 ?? lea eax, ss:[ebp + 0xd3<211,-45>]
 57 ?? push edi
 50 ?? push eax
 e8 b1 20 00 00 ?? call function 0x0040651b

L28: 83 c4 10 ?? add esp, 0x10<16>
 e9 84 00 00 00 ?? jmp basic block L44

L29: 8d 45 d3 ?? lea eax, ss:[ebp + 0xd3<211,-45>]
 8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
 39 45 c4 ?? cmp dword ss:[ebp + 0xc4<196,-60>], eax
 75 48 ?? jne basic block L38

L30: 8d 45 a4 ?? lea eax, ss:[ebp + 0xa4<164,-92>]
 50 ?? push eax
 e8 71 fd ff ff ?? call function 0x004041f7

L31: 8b c8 ?? mov ecx, eax
 e8 55 f3 ff ff ?? call function 0x004037e2

L32: 8b 4d cc ?? mov ecx, dword ss:[ebp + 0xcc<204,-52>]
 2b c8 ?? sub ecx, eax
 51 ?? push ecx
 6a 00 ?? push 0
 8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
 e8 1c cc ff ff ?? call function 0x004010b9

L33: ff 76 4c ?? push dword ds:[esi + 0x4c<76>]
 e8 ff 26 00 00 ?? call function 0x00406ba4

L34: 59 ?? pop ecx
 83 f8 ff ?? cmp eax, 0xff<255,-1>
 0f 85 2c ff ff ff ?? jne basic block L15

L35: 83 ce ff ?? or esi, 0xff<255,-1>

L36: 6a 00 ?? push 0
 6a 01 ?? push 1
 8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
 e8 50 cc ff ff ?? call function 0x0040110e

L37: 8b c6 ?? mov eax, esi
 e9 d7 fe ff ff ?? jmp basic block L5

L38: 8d 45 ac ?? lea eax, ss:[ebp + 0xac<172,-84>]
 50 ?? push eax
 e8 29 fd ff ff ?? call function 0x004041f7

L39: 8b c8 ?? mov ecx, eax
 e8 0d f3 ff ff ?? call function 0x004037e2

L40: 8b 7d e8 ?? mov edi, dword ss:[ebp + 0xe8<232,-24>]
 2b 7d cc ?? sub edi, dword ss:[ebp + 0xcc<204,-52>]
 03 f8 ?? add edi, eax
 eb 13 ?? jmp basic block L43

L41: 8b 45 cc ?? mov eax, dword ss:[ebp + 0xcc<204,-52>]
 ff 76 4c ?? push dword ds:[esi + 0x4c<76>]
 4f ?? dec edi
 0f be 04 07 ?? movsx eax, byte ds:[edi + eax]
 50 ?? push eax
 e8 e5 2b 00 00 ?? call function 0x004070d5

L42: 59 ?? pop ecx
 59 ?? pop ecx

L43: 85 ff ?? test edi, edi
 7f e9 ?? jg basic block L41

L44: 0f b6 75 d3 ?? movzx esi, byte ss:[ebp + 0xd3<211,-45>]
 eb b6 ?? jmp basic block L36

