
L1: 55 ?? push ebp
 8b ec ?? mov ebp, esp
 6a ff ?? push 0xff<255,-1>
 68 6d 4c 40 00 ?? push 0x00404c6d
 64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
 50 ?? push eax
 83 ec 20 ?? sub esp, 0x20<32>
 53 ?? push ebx
 56 ?? push esi
 57 ?? push edi
 a1 04 90 40 00 ?? mov eax, dword ds:[0x00409004]
 33 c5 ?? xor eax, ebp
 50 ?? push eax
 8d 45 f4 ?? lea eax, ss:[ebp + 0xf4<244,-12>]
 64 a3 00 00 00 00 ?? mov dword fs:[0], eax
 89 65 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], esp
 8b 75 0c ?? mov esi, dword ss:[ebp + 12]
 33 c0 ?? xor eax, eax
 89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
 89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
 8d 4e 01 ?? lea ecx, ds:[esi + 1]
 0f 1f 80 00 00 00 00 ?? nop dword ds:[eax + 0]

L2: 8a 06 ?? mov al, byte ds:[esi]
 46 ?? inc esi
 84 c0 ?? test al, al

L3: 75 f9 ?? jne basic block L2

L4: 8b 5d 08 ?? mov ebx, dword ss:[ebp + 8]
 2b f1 ?? sub esi, ecx
 89 75 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], esi
 8b 03 ?? mov eax, dword ds:[ebx]
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 cb ?? add ecx, ebx
 ff 15 98 a0 40 00 ?? call dword ds:[function 0x0040a098]

L5: 85 d2 ?? test edx, edx
 7c 36 ?? jl basic block L14

L6: 7f 04 ?? jg basic block L8

L7: 85 c0 ?? test eax, eax
 74 30 ?? je basic block L14

L8: 8b 03 ?? mov eax, dword ds:[ebx]
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 cb ?? add ecx, ebx
 ff 15 98 a0 40 00 ?? call dword ds:[function 0x0040a098]

L9: 85 d2 ?? test edx, edx
 7c 1f ?? jl basic block L14

L10: 7f 04 ?? jg basic block L12

L11: 3b c6 ?? cmp eax, esi
 76 19 ?? jbe basic block L14

L12: 8b 03 ?? mov eax, dword ds:[ebx]
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 cb ?? add ecx, ebx
 ff 15 98 a0 40 00 ?? call dword ds:[function 0x0040a098]

L13: 8b f0 ?? mov esi, eax
 8b fa ?? mov edi, edx
 2b 75 e8 ?? sub esi, dword ss:[ebp + 0xe8<232,-24>]
 83 df 00 ?? sbb edi, 0
 eb 0e ?? jmp basic block L15

L14: 0f 57 c0 ?? xorps xmm0, xmm0
 66 0f 13 45 d4 ?? movlpd double ss:[ebp + 0xd4<212,-44>], xmm0
 8b 7d d8 ?? mov edi, dword ss:[ebp + 0xd8<216,-40>]
 8b 75 d4 ?? mov esi, dword ss:[ebp + 0xd4<212,-44>]

L15: 53 ?? push ebx
 8d 4d dc ?? lea ecx, ss:[ebp + 0xdc<220,-36>]
 e8 29 fb ff ff ?? call function 0x00401186

L16: 80 7d e0 00 ?? cmp byte ss:[ebp + 0xe0<224,-32>], 0
 c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
 75 0a ?? jne basic block L18

L17: be 04 00 00 00 ?? mov esi, 4
 e9 12 01 00 00 ?? jmp basic block L51

L18: 8b 03 ?? mov eax, dword ds:[ebx]
 c6 45 fc 01 ?? mov byte ss:[ebp + 0xfc<252,-4>], 1
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 cb ?? add ecx, ebx
 ff 15 9c a0 40 00 ?? call dword ds:[function 0x0040a09c]

L19: 25 c0 01 00 00 ?? and eax, 0x000001c0<448>
 83 f8 40 ?? cmp eax, 0x40<64>
 74 46 ?? je basic block L30

L20: 90 ?? nop

L21: 85 ff ?? test edi, edi
 7c 41 ?? jl basic block L30

L22: 7f 04 ?? jg basic block L24

L23: 85 f6 ?? test esi, esi
 74 3b ?? je basic block L30

L24: 8b 03 ?? mov eax, dword ds:[ebx]
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 cb ?? add ecx, ebx
 ff 15 7c a0 40 00 ?? call dword ds:[function 0x0040a07c]

L25: 0f b6 c0 ?? movzx eax, al
 50 ?? push eax
 8b 03 ?? mov eax, dword ds:[ebx]
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 cb ?? add ecx, ebx
 ff 15 80 a0 40 00 ?? call dword ds:[function 0x0040a080]

L26: 8b c8 ?? mov ecx, eax
 ff 15 90 a0 40 00 ?? call dword ds:[function 0x0040a090]

L27: 83 f8 ff ?? cmp eax, 0xff<255,-1>
 75 08 ?? jne basic block L29

L28: 8d 70 05 ?? lea esi, ds:[eax + 5]
 e9 7f 00 00 00 ?? jmp basic block L45

L29: 83 c6 ff ?? add esi, 0xff<255,-1>
 83 d7 ff ?? adc edi, 0xff<255,-1>
 eb bb ?? jmp basic block L21

L30: 8b 03 ?? mov eax, dword ds:[ebx]
 6a 00 ?? push 0
 ff 75 e8 ?? push dword ss:[ebp + 0xe8<232,-24>]
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 ff 75 0c ?? push dword ss:[ebp + 12]
 03 cb ?? add ecx, ebx
 ff 15 80 a0 40 00 ?? call dword ds:[function 0x0040a080]

L31: 8b c8 ?? mov ecx, eax
 ff 15 8c a0 40 00 ?? call dword ds:[function 0x0040a08c]

L32: 3b 45 e8 ?? cmp eax, dword ss:[ebp + 0xe8<232,-24>]
 75 04 ?? jne basic block L34

L33: 85 d2 ?? test edx, edx
 74 09 ?? je basic block L35

L34: 33 c0 ?? xor eax, eax
 83 c8 04 ?? or eax, 4
 8b f0 ?? mov esi, eax
 eb 48 ?? jmp basic block L45

L35: 85 ff ?? test edi, edi
 7c 41 ?? jl basic block L44

L36: 7f 04 ?? jg basic block L38

L37: 85 f6 ?? test esi, esi
 74 3b ?? je basic block L44

L38: 8b 03 ?? mov eax, dword ds:[ebx]
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 cb ?? add ecx, ebx
 ff 15 7c a0 40 00 ?? call dword ds:[function 0x0040a07c]

L39: 0f b6 c0 ?? movzx eax, al
 50 ?? push eax
 8b 03 ?? mov eax, dword ds:[ebx]
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 cb ?? add ecx, ebx
 ff 15 80 a0 40 00 ?? call dword ds:[function 0x0040a080]

L40: 8b c8 ?? mov ecx, eax
 ff 15 90 a0 40 00 ?? call dword ds:[function 0x0040a090]

L41: 83 f8 ff ?? cmp eax, 0xff<255,-1>
 75 08 ?? jne basic block L43

L42: 8b 75 ec ?? mov esi, dword ss:[ebp + 0xec<236,-20>]
 83 ce 04 ?? or esi, 4
 eb 0b ?? jmp basic block L45

L43: 83 c6 ff ?? add esi, 0xff<255,-1>
 83 d7 ff ?? adc edi, 0xff<255,-1>
 eb bb ?? jmp basic block L35

L44: 8b 75 ec ?? mov esi, dword ss:[ebp + 0xec<236,-20>]

L45: 8b 03 ?? mov eax, dword ds:[ebx]
 6a 00 ?? push 0
 6a 00 ?? push 0
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 cb ?? add ecx, ebx
 ff 15 94 a0 40 00 ?? call dword ds:[function 0x0040a094]

L46: eb 20 ?? jmp basic block L50

L47: 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
 6a 01 ?? push 1
 6a 04 ?? push 4
 8b 02 ?? mov eax, dword ds:[edx]
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 ca ?? add ecx, edx
 ff 15 88 a0 40 00 ?? call dword ds:[function 0x0040a088]

L48: b8 79 17 40 00 ?? mov eax, basic block L49
 c3 ?? ret

L49: 8b 5d 08 ?? mov ebx, dword ss:[ebp + 8]
 8b 75 e4 ?? mov esi, dword ss:[ebp + 0xe4<228,-28>]

L50: c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0

L51: 8b 03 ?? mov eax, dword ds:[ebx]
 6a 00 ?? push 0
 56 ?? push esi
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 cb ?? add ecx, ebx
 ff 15 88 a0 40 00 ?? call dword ds:[function 0x0040a088]

L52: e8 b8 07 00 00 ?? call function 0x00401f53

L53: 84 c0 ?? test al, al
 75 09 ?? jne basic block L55

L54: 8b 4d dc ?? mov ecx, dword ss:[ebp + 0xdc<220,-36>]
 ff 15 74 a0 40 00 ?? call dword ds:[function 0x0040a074]

L55: 8b 55 dc ?? mov edx, dword ss:[ebp + 0xdc<220,-36>]
 c7 45 fc 03 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 3
 8b 02 ?? mov eax, dword ds:[edx]
 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
 03 ca ?? add ecx, edx
 ff 15 80 a0 40 00 ?? call dword ds:[function 0x0040a080]

L56: 85 c0 ?? test eax, eax
 74 07 ?? je basic block L58

L57: 8b 10 ?? mov edx, dword ds:[eax]
 8b c8 ?? mov ecx, eax
 ff 52 08 ?? call dword ds:[edx + 8]

L58: 8b c3 ?? mov eax, ebx
 8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
 64 89 0d 00 00 00 00 ?? mov dword fs:[0], ecx
 59 ?? pop ecx
 5f ?? pop edi
 5e ?? pop esi
 5b ?? pop ebx
 8b e5 ?? mov esp, ebp
 5d ?? pop ebp
 c3 ?? ret

