
L1: 8b ff ?? mov edi, edi
 55 ?? push ebp
 8b ec ?? mov ebp, esp
 83 ec 38 ?? sub esp, 0x38<56>
 53 ?? push ebx
 57 ?? push edi
 ff 75 08 ?? push dword ss:[ebp + 8]
 8d 4d c8 ?? lea ecx, ss:[ebp + 0xc8<200,-56>]
 e8 b2 94 fe ff ?? call function 0x004091d4

L2: 8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
 8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
 33 db ?? xor ebx, ebx
 3b c3 ?? cmp eax, ebx
 74 02 ?? je basic block L4

L3: 89 38 ?? mov dword ds:[eax], edi

L4: 3b fb ?? cmp edi, ebx
 75 2d ?? jne basic block L10

L5: e8 e9 cb fe ff ?? call function 0x0040c922

L6: 53 ?? push ebx
 53 ?? push ebx
 53 ?? push ebx
 53 ?? push ebx
 53 ?? push ebx
 c7 00 16 00 00 00 ?? mov dword ds:[eax], 0x00000016<22>
 e8 77 70 fe ff ?? call function 0x00406dc0

L7: 83 c4 14 ?? add esp, 0x14<20>
 38 5d d4 ?? cmp byte ss:[ebp + 0xd4<212,-44>], bl
 74 07 ?? je basic block L9

L8: 8b 45 d0 ?? mov eax, dword ss:[ebp + 0xd0<208,-48>]
 83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>

L9: 33 c0 ?? xor eax, eax
 33 d2 ?? xor edx, edx
 e9 3f 02 00 00 ?? jmp basic block L83

L10: 39 5d 14 ?? cmp dword ss:[ebp + 0x14<20>], ebx
 74 0c ?? je basic block L13

L11: 83 7d 14 02 ?? cmp dword ss:[ebp + 0x14<20>], 2
 7c c8 ?? jl basic block L5

L12: 83 7d 14 24 ?? cmp dword ss:[ebp + 0x14<20>], 0x24<36>
 7f c2 ?? jg basic block L5

L13: 56 ?? push esi
 8b 75 c8 ?? mov esi, dword ss:[ebp + 0xc8<200,-56>]
 89 5d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ebx
 89 5d f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], ebx

L14: 8a 07 ?? mov al, byte ds:[edi]
 47 ?? inc edi
 83 be ac 00 00 00 01 ?? cmp dword ds:[esi + 0x000000ac<172>], 1
 88 45 ff ?? mov byte ss:[ebp + 0xff<255,-1>], al
 7e 18 ?? jle basic block L17

L15: 8d 45 c8 ?? lea eax, ss:[ebp + 0xc8<200,-56>]
 50 ?? push eax
 0f b6 45 ff ?? movzx eax, byte ss:[ebp + 0xff<255,-1>]
 6a 08 ?? push 8
 50 ?? push eax
 e8 31 16 ff ff ?? call function 0x004113cc

L16: 8b 75 c8 ?? mov esi, dword ss:[ebp + 0xc8<200,-56>]
 83 c4 0c ?? add esp, 12
 eb 11 ?? jmp basic block L18

L17: 0f b6 45 ff ?? movzx eax, byte ss:[ebp + 0xff<255,-1>]
 8b 8e c8 00 00 00 ?? mov ecx, dword ds:[esi + 0x000000c8<200>]
 0f b7 04 41 ?? movzx eax, word ds:[ecx + eax * 2]
 83 e0 08 ?? and eax, 8

L18: 3b c3 ?? cmp eax, ebx
 75 c4 ?? jne basic block L14

L19: 80 7d ff 2d ?? cmp byte ss:[ebp + 0xff<255,-1>], 0x2d<45>
 89 7d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], edi
 75 06 ?? jne basic block L21

L20: 83 4d 18 02 ?? or dword ss:[ebp + 0x18<24>], 2
 eb 06 ?? jmp basic block L22

L21: 80 7d ff 2b ?? cmp byte ss:[ebp + 0xff<255,-1>], 0x2b<43>
 75 09 ?? jne basic block L23

L22: 8a 07 ?? mov al, byte ds:[edi]
 47 ?? inc edi
 89 7d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], edi
 88 45 ff ?? mov byte ss:[ebp + 0xff<255,-1>], al

L23: 6a 10 ?? push 0x10<16>
 59 ?? pop ecx
 39 5d 14 ?? cmp dword ss:[ebp + 0x14<20>], ebx
 75 25 ?? jne basic block L30

L24: 80 7d ff 30 ?? cmp byte ss:[ebp + 0xff<255,-1>], 0x30<48>
 74 09 ?? je basic block L26

L25: c7 45 14 0a 00 00 00 ?? mov dword ss:[ebp + 0x14<20>], 10
 eb 35 ?? jmp basic block L35

L26: 8a 07 ?? mov al, byte ds:[edi]
 3c 78 ?? cmp al, 0x78<120>
 74 0d ?? je basic block L29

L27: 3c 58 ?? cmp al, 0x58<88>
 74 09 ?? je basic block L29

L28: c7 45 14 08 00 00 00 ?? mov dword ss:[ebp + 0x14<20>], 8
 eb 22 ?? jmp basic block L35

L29: 89 4d 14 ?? mov dword ss:[ebp + 0x14<20>], ecx

L30: 39 4d 14 ?? cmp dword ss:[ebp + 0x14<20>], ecx
 75 1a ?? jne basic block L35

L31: 80 7d ff 30 ?? cmp byte ss:[ebp + 0xff<255,-1>], 0x30<48>
 75 14 ?? jne basic block L35

L32: 8a 07 ?? mov al, byte ds:[edi]
 3c 78 ?? cmp al, 0x78<120>
 74 04 ?? je basic block L34

L33: 3c 58 ?? cmp al, 0x58<88>
 75 0a ?? jne basic block L35

L34: 47 ?? inc edi
 8a 07 ?? mov al, byte ds:[edi]
 47 ?? inc edi
 88 45 ff ?? mov byte ss:[ebp + 0xff<255,-1>], al
 89 7d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], edi

L35: 8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
 99 ?? cdq
 52 ?? push edx
 8b f8 ?? mov edi, eax
 57 ?? push edi
 6a ff ?? push 0xff<255,-1>
 6a ff ?? push 0xff<255,-1>
 89 55 dc ?? mov dword ss:[ebp + 0xdc<220,-36>], edx
 e8 aa f9 ff ff ?? call function 0x0041f7e0

L36: 89 5d e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], ebx
 8b 9e c8 00 00 00 ?? mov ebx, dword ds:[esi + 0x000000c8<200>]
 89 4d e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], ecx
 89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
 89 55 ec ?? mov dword ss:[ebp + 0xec<236,-20>], edx

L37: 8a 4d ff ?? mov cl, byte ss:[ebp + 0xff<255,-1>]
 0f b6 c1 ?? movzx eax, cl
 0f b7 04 43 ?? movzx eax, word ds:[ebx + eax * 2]
 a8 04 ?? test al, 4
 74 08 ?? je basic block L39

L38: 0f be f1 ?? movsx esi, cl
 83 ee 30 ?? sub esi, 0x30<48>
 eb 18 ?? jmp basic block L43

L39: a9 03 01 00 00 ?? test eax, 0x00000103<259>
 74 51 ?? je basic block L53

L40: 8a c1 ?? mov al, cl
 2c 61 ?? sub al, 0x61<97>
 3c 19 ?? cmp al, 0x19<25>
 0f be c1 ?? movsx eax, cl
 77 03 ?? ja basic block L42

L41: 83 e8 20 ?? sub eax, 0x20<32>

L42: 8d 70 c9 ?? lea esi, ds:[eax + 0xc9<201,-55>]

L43: 3b 75 14 ?? cmp esi, dword ss:[ebp + 0x14<20>]
 73 3b ?? jae basic block L53

L44: 8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
 83 4d 18 08 ?? or dword ss:[ebp + 0x18<24>], 8
 3b 4d ec ?? cmp ecx, dword ss:[ebp + 0xec<236,-20>]
 72 51 ?? jb basic block L57

L45: 77 08 ?? ja basic block L47

L46: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
 3b 45 e8 ?? cmp eax, dword ss:[ebp + 0xe8<232,-24>]
 72 47 ?? jb basic block L57

L47: 8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
 39 45 f0 ?? cmp dword ss:[ebp + 0xf0<240,-16>], eax
 75 13 ?? jne basic block L52

L48: 3b 4d ec ?? cmp ecx, dword ss:[ebp + 0xec<236,-20>]
 75 0e ?? jne basic block L52

L49: 33 c0 ?? xor eax, eax
 3b 45 e4 ?? cmp eax, dword ss:[ebp + 0xe4<228,-28>]
 72 33 ?? jb basic block L57

L50: 77 05 ?? ja basic block L52

L51: 3b 75 e0 ?? cmp esi, dword ss:[ebp + 0xe0<224,-32>]
 76 2c ?? jbe basic block L57

L52: 83 4d 18 04 ?? or dword ss:[ebp + 0x18<24>], 4
 83 7d 10 00 ?? cmp dword ss:[ebp + 0x10<16>], 0
 75 3b ?? jne basic block L59

L53: 8b 45 18 ?? mov eax, dword ss:[ebp + 0x18<24>]
 ff 4d f8 ?? dec dword ss:[ebp + 0xf8<248,-8>]
 a8 08 ?? test al, 8
 75 41 ?? jne basic block L60

L54: 33 c0 ?? xor eax, eax
 39 45 10 ?? cmp dword ss:[ebp + 0x10<16>], eax
 74 06 ?? je basic block L56

L55: 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
 89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx

L56: 89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
 89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
 e9 8f 00 00 00 ?? jmp basic block L76

L57: 51 ?? push ecx
 ff 75 f0 ?? push dword ss:[ebp + 0xf0<240,-16>]
 ff 75 dc ?? push dword ss:[ebp + 0xdc<220,-36>]
 57 ?? push edi
 e8 9b f9 ff ff ?? call function 0x0041f880

L58: 33 c9 ?? xor ecx, ecx
 03 c6 ?? add eax, esi
 13 d1 ?? adc edx, ecx
 89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
 89 55 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], edx

L59: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
 8a 00 ?? mov al, byte ds:[eax]
 ff 45 f8 ?? inc dword ss:[ebp + 0xf8<248,-8>]
 88 45 ff ?? mov byte ss:[ebp + 0xff<255,-1>], al
 e9 47 ff ff ff ?? jmp basic block L37

L60: be ff ff ff 7f ?? mov esi, 0x7fffffff
 bb 00 00 00 80 ?? mov ebx, 0x80000000
 a8 04 ?? test al, 4
 75 27 ?? jne basic block L70

L61: a8 01 ?? test al, 1
 75 54 ?? jne basic block L76

L62: 83 e0 02 ?? and eax, 2
 74 0d ?? je basic block L66

L63: 39 5d f4 ?? cmp dword ss:[ebp + 0xf4<244,-12>], ebx
 77 19 ?? ja basic block L70

L64: 72 06 ?? jb basic block L66

L65: 83 7d f0 00 ?? cmp dword ss:[ebp + 0xf0<240,-16>], 0
 77 11 ?? ja basic block L70

L66: 85 c0 ?? test eax, eax
 75 3e ?? jne basic block L76

L67: 39 75 f4 ?? cmp dword ss:[ebp + 0xf4<244,-12>], esi
 72 39 ?? jb basic block L76

L68: 77 06 ?? ja basic block L70

L69: 83 7d f0 ff ?? cmp dword ss:[ebp + 0xf0<240,-16>], 0xff<255,-1>
 76 31 ?? jbe basic block L76

L70: e8 e7 c9 fe ff ?? call function 0x0040c922

L71: f6 45 18 01 ?? test byte ss:[ebp + 0x18<24>], 1
 c7 00 22 00 00 00 ?? mov dword ds:[eax], 0x00000022<34>
 74 0a ?? je basic block L73

L72: 83 4d f0 ff ?? or dword ss:[ebp + 0xf0<240,-16>], 0xff<255,-1>
 83 4d f4 ff ?? or dword ss:[ebp + 0xf4<244,-12>], 0xff<255,-1>
 eb 16 ?? jmp basic block L76

L73: f6 45 18 02 ?? test byte ss:[ebp + 0x18<24>], 2
 74 09 ?? je basic block L75

L74: 83 65 f0 00 ?? and dword ss:[ebp + 0xf0<240,-16>], 0
 89 5d f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], ebx
 eb 07 ?? jmp basic block L76

L75: 83 4d f0 ff ?? or dword ss:[ebp + 0xf0<240,-16>], 0xff<255,-1>
 89 75 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], esi

L76: 8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
 5e ?? pop esi
 85 c0 ?? test eax, eax
 74 05 ?? je basic block L78

L77: 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
 89 08 ?? mov dword ds:[eax], ecx

L78: f6 45 18 02 ?? test byte ss:[ebp + 0x18<24>], 2
 74 13 ?? je basic block L80

L79: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
 8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
 f7 d8 ?? neg eax
 83 d1 00 ?? adc ecx, 0
 f7 d9 ?? neg ecx
 89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
 89 4d f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], ecx

L80: 80 7d d4 00 ?? cmp byte ss:[ebp + 0xd4<212,-44>], 0
 74 07 ?? je basic block L82

L81: 8b 45 d0 ?? mov eax, dword ss:[ebp + 0xd0<208,-48>]
 83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>

L82: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
 8b 55 f4 ?? mov edx, dword ss:[ebp + 0xf4<244,-12>]

L83: 5f ?? pop edi
 5b ?? pop ebx
 c9 ?? leave
 c3 ?? ret

