
L1: 8b ff ?? mov edi, edi
 55 ?? push ebp
 8b ec ?? mov ebp, esp
 83 ec 2c ?? sub esp, 0x2c<44>
 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
 53 ?? push ebx
 8b 5d 18 ?? mov ebx, dword ss:[ebp + 0x18<24>]
 8b 43 04 ?? mov eax, dword ds:[ebx + 4]
 3d 80 00 00 00 ?? cmp eax, 0x00000080<128>
 56 ?? push esi
 57 ?? push edi
 c6 45 ff 00 ?? mov byte ss:[ebp + 0xff<255,-1>], 0
 7f 06 ?? jg basic block L3

L2: 0f be 49 08 ?? movsx ecx, byte ds:[ecx + 8]
 eb 03 ?? jmp basic block L4

L3: 8b 49 08 ?? mov ecx, dword ds:[ecx + 8]

L4: 83 f9 ff ?? cmp ecx, 0xff<255,-1>
 89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx
 7c 04 ?? jl basic block L6

L5: 3b c8 ?? cmp ecx, eax
 7c 05 ?? jl basic block L7

L6: e8 cb 0a 00 00 ?? call function 0x00403a15

L7: 8b 75 08 ?? mov esi, dword ss:[ebp + 8]
 bf 63 73 6d e0 ?? mov edi, 0xe06d7363
 39 3e ?? cmp dword ds:[esi], edi
 0f 85 ba 02 00 00 ?? jne basic block L83

L8: 83 7e 10 03 ?? cmp dword ds:[esi + 0x10<16>], 3
 bb 20 05 93 19 ?? mov ebx, 0x19930520
 0f 85 18 01 00 00 ?? jne basic block L42

L9: 8b 46 14 ?? mov eax, dword ds:[esi + 0x14<20>]
 3b c3 ?? cmp eax, ebx
 74 12 ?? je basic block L12

L10: 3d 21 05 93 19 ?? cmp eax, 0x19930521
 74 0b ?? je basic block L12

L11: 3d 22 05 93 19 ?? cmp eax, 0x19930522
 0f 85 ff 00 00 00 ?? jne basic block L42

L12: 83 7e 1c 00 ?? cmp dword ds:[esi + 0x1c<28>], 0
 0f 85 f5 00 00 00 ?? jne basic block L42

L13: e8 e8 06 00 00 ?? call function 0x00403679

L14: 83 b8 88 00 00 00 00 ?? cmp dword ds:[eax + 0x00000088<136>], 0
 0f 84 b5 02 00 00 ?? je basic block L90

L15: e8 d6 06 00 00 ?? call function 0x00403679

L16: 8b b0 88 00 00 00 ?? mov esi, dword ds:[eax + 0x00000088<136>]
 89 75 08 ?? mov dword ss:[ebp + 8], esi
 e8 c8 06 00 00 ?? call function 0x00403679

L17: 8b 80 8c 00 00 00 ?? mov eax, dword ds:[eax + 0x0000008c<140>]
 6a 01 ?? push 1
 56 ?? push esi
 89 45 10 ?? mov dword ss:[ebp + 0x10<16>], eax
 e8 bf 39 00 00 ?? call function 0x00406981

L18: 59 ?? pop ecx
 59 ?? pop ecx
 85 c0 ?? test eax, eax
 75 05 ?? jne basic block L20

L19: e8 48 0a 00 00 ?? call function 0x00403a15

L20: 39 3e ?? cmp dword ds:[esi], edi
 75 26 ?? jne basic block L27

L21: 83 7e 10 03 ?? cmp dword ds:[esi + 0x10<16>], 3
 75 20 ?? jne basic block L27

L22: 8b 46 14 ?? mov eax, dword ds:[esi + 0x14<20>]
 3b c3 ?? cmp eax, ebx
 74 0e ?? je basic block L25

L23: 3d 21 05 93 19 ?? cmp eax, 0x19930521
 74 07 ?? je basic block L25

L24: 3d 22 05 93 19 ?? cmp eax, 0x19930522
 75 0b ?? jne basic block L27

L25: 83 7e 1c 00 ?? cmp dword ds:[esi + 0x1c<28>], 0
 75 05 ?? jne basic block L27

L26: e8 1e 0a 00 00 ?? call function 0x00403a15

L27: e8 7d 06 00 00 ?? call function 0x00403679

L28: 83 b8 94 00 00 00 00 ?? cmp dword ds:[eax + 0x00000094<148>], 0
 74 7c ?? je basic block L42

L29: e8 6f 06 00 00 ?? call function 0x00403679

L30: 8b b8 94 00 00 00 ?? mov edi, dword ds:[eax + 0x00000094<148>]
 e8 64 06 00 00 ?? call function 0x00403679

L31: ff 75 08 ?? push dword ss:[ebp + 8]
 33 f6 ?? xor esi, esi
 89 b0 94 00 00 00 ?? mov dword ds:[eax + 0x00000094<148>], esi
 e8 1c f7 ff ff ?? call function 0x00402741

L32: 59 ?? pop ecx
 84 c0 ?? test al, al
 75 4f ?? jne basic block L41

L33: 33 db ?? xor ebx, ebx
 39 1f ?? cmp dword ds:[edi], ebx
 7e 1d ?? jle basic block L37

L34: 8b 47 04 ?? mov eax, dword ds:[edi + 4]
 8b 4c 03 04 ?? mov ecx, dword ds:[ebx + eax + 4]
 68 cc 80 42 00 ?? push 0x004280cc
 e8 1a ed ff ff ?? call function 0x00401d5b

L35: 84 c0 ?? test al, al
 75 0d ?? jne basic block L38

L36: 46 ?? inc esi
 83 c3 10 ?? add ebx, 0x10<16>
 3b 37 ?? cmp esi, dword ds:[edi]
 7c e3 ?? jl basic block L34

L37: e8 77 09 00 00 ?? call function 0x004039c9

L38: 6a 01 ?? push 1
 ff 75 08 ?? push dword ss:[ebp + 8]
 e8 36 f3 ff ff ?? call function 0x00402392

L39: 59 ?? pop ecx
 59 ?? pop ecx
 68 08 3b 42 00 ?? push 0x00423b08<"bad exception">
 8d 4d d4 ?? lea ecx, ss:[ebp + 0xd4<212,-44>]
 e8 09 f1 ff ff ?? call function 0x00402174

L40: 68 44 75 42 00 ?? push 0x00427544
 8d 45 d4 ?? lea eax, ss:[ebp + 0xd4<212,-44>]
 50 ?? push eax
 e8 af f0 ff ff ?? call function 0x00402128

L41: 8b 75 08 ?? mov esi, dword ss:[ebp + 8]
 bf 63 73 6d e0 ?? mov edi, 0xe06d7363

L42: 39 3e ?? cmp dword ds:[esi], edi
 0f 85 88 01 00 00 ?? jne basic block L82

L43: 83 7e 10 03 ?? cmp dword ds:[esi + 0x10<16>], 3
 0f 85 7e 01 00 00 ?? jne basic block L82

L44: 8b 46 14 ?? mov eax, dword ds:[esi + 0x14<20>]
 3b c3 ?? cmp eax, ebx
 74 12 ?? je basic block L47

L45: 3d 21 05 93 19 ?? cmp eax, 0x19930521
 74 0b ?? je basic block L47

L46: 3d 22 05 93 19 ?? cmp eax, 0x19930522
 0f 85 65 01 00 00 ?? jne basic block L82

L47: 8b 7d 18 ?? mov edi, dword ss:[ebp + 0x18<24>]
 83 7f 0c 00 ?? cmp dword ds:[edi + 12], 0
 0f 86 bf 00 00 00 ?? jbe basic block L64

L48: 8d 45 e4 ?? lea eax, ss:[ebp + 0xe4<228,-28>]
 50 ?? push eax
 8d 45 f0 ?? lea eax, ss:[ebp + 0xf0<240,-16>]
 50 ?? push eax
 ff 75 f8 ?? push dword ss:[ebp + 0xf8<248,-8>]
 ff 75 20 ?? push dword ss:[ebp + 0x20<32>]
 57 ?? push edi
 e8 51 e5 ff ff ?? call function 0x0040161e

L49: 83 c4 14 ?? add esp, 0x14<20>
 8b f8 ?? mov edi, eax

L50: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
 3b 45 e4 ?? cmp eax, dword ss:[ebp + 0xe4<228,-28>]
 0f 83 97 00 00 00 ?? jae basic block L63

L51: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
 39 07 ?? cmp dword ds:[edi], eax
 0f 8f 81 00 00 00 ?? jg basic block L62

L52: 3b 47 04 ?? cmp eax, dword ds:[edi + 4]
 7f 7c ?? jg basic block L62

L53: 8b 47 10 ?? mov eax, dword ds:[edi + 0x10<16>]
 89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
 8b 47 0c ?? mov eax, dword ds:[edi + 12]
 89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
 85 c0 ?? test eax, eax
 7e 6c ?? jle basic block L62

L54: 8b 46 1c ?? mov eax, dword ds:[esi + 0x1c<28>]
 8b 40 0c ?? mov eax, dword ds:[eax + 12]
 8d 58 04 ?? lea ebx, ds:[eax + 4]
 8b 00 ?? mov eax, dword ds:[eax]
 89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
 85 c0 ?? test eax, eax
 7e 23 ?? jle basic block L58

L55: ff 76 1c ?? push dword ds:[esi + 0x1c<28>]
 8b 03 ?? mov eax, dword ds:[ebx]
 50 ?? push eax
 ff 75 f4 ?? push dword ss:[ebp + 0xf4<244,-12>]
 89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
 e8 a3 f0 ff ff ?? call function 0x004021c4

L56: 83 c4 0c ?? add esp, 12
 85 c0 ?? test eax, eax
 75 1a ?? jne basic block L60

L57: ff 4d ec ?? dec dword ss:[ebp + 0xec<236,-20>]
 83 c3 04 ?? add ebx, 4
 39 45 ec ?? cmp dword ss:[ebp + 0xec<236,-20>], eax
 7f dd ?? jg basic block L55

L58: ff 4d e8 ?? dec dword ss:[ebp + 0xe8<232,-24>]
 83 45 f4 10 ?? add dword ss:[ebp + 0xf4<244,-12>], 0x10<16>
 83 7d e8 00 ?? cmp dword ss:[ebp + 0xe8<232,-24>], 0
 7f be ?? jg basic block L54

L59: eb 28 ?? jmp basic block L62

L60: ff 75 24 ?? push dword ss:[ebp + 0x24<36>]
 8b 5d f4 ?? mov ebx, dword ss:[ebp + 0xf4<244,-12>]
 ff 75 20 ?? push dword ss:[ebp + 0x20<32>]
 c6 45 ff 01 ?? mov byte ss:[ebp + 0xff<255,-1>], 1
 ff 75 e0 ?? push dword ss:[ebp + 0xe0<224,-32>]
 ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
 ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
 ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
 56 ?? push esi
 8b 75 0c ?? mov esi, dword ss:[ebp + 12]
 e8 4b fc ff ff ?? call function 0x00402daf

L61: 8b 75 08 ?? mov esi, dword ss:[ebp + 8]
 83 c4 1c ?? add esp, 0x1c<28>

L62: ff 45 f0 ?? inc dword ss:[ebp + 0xf0<240,-16>]
 83 c7 14 ?? add edi, 0x14<20>
 e9 5d ff ff ff ?? jmp basic block L50

L63: 8b 7d 18 ?? mov edi, dword ss:[ebp + 0x18<24>]

L64: 80 7d 1c 00 ?? cmp byte ss:[ebp + 0x1c<28>], 0
 74 0a ?? je basic block L67

L65: 6a 01 ?? push 1
 56 ?? push esi
 e8 0c f2 ff ff ?? call function 0x00402392

L66: 59 ?? pop ecx
 59 ?? pop ecx

L67: 80 7d ff 00 ?? cmp byte ss:[ebp + 0xff<255,-1>], 0
 0f 85 ae 00 00 00 ?? jne basic block L87

L68: 8b 07 ?? mov eax, dword ds:[edi]
 25 ff ff ff 1f ?? and eax, 0x1fffffff
 3d 21 05 93 19 ?? cmp eax, 0x19930521
 0f 82 9c 00 00 00 ?? jb basic block L87

L69: 8b 7f 1c ?? mov edi, dword ds:[edi + 0x1c<28>]
 85 ff ?? test edi, edi
 0f 84 91 00 00 00 ?? je basic block L87

L70: 56 ?? push esi
 e8 8c f5 ff ff ?? call function 0x00402741

L71: 59 ?? pop ecx
 84 c0 ?? test al, al
 0f 85 82 00 00 00 ?? jne basic block L87

L72: e8 b6 04 00 00 ?? call function 0x00403679

L73: e8 b1 04 00 00 ?? call function 0x00403679

L74: e8 ac 04 00 00 ?? call function 0x00403679

L75: 89 b0 88 00 00 00 ?? mov dword ds:[eax + 0x00000088<136>], esi
 e8 a1 04 00 00 ?? call function 0x00403679

L76: 83 7d 24 00 ?? cmp dword ss:[ebp + 0x24<36>], 0
 8b 4d 10 ?? mov ecx, dword ss:[ebp + 0x10<16>]
 89 88 8c 00 00 00 ?? mov dword ds:[eax + 0x0000008c<140>], ecx
 56 ?? push esi
 75 05 ?? jne basic block L78

L77: ff 75 0c ?? push dword ss:[ebp + 12]
 eb 03 ?? jmp basic block L79

L78: ff 75 24 ?? push dword ss:[ebp + 0x24<36>]

L79: e8 6b e1 ff ff ?? call function 0x00401360

L80: 8b 75 18 ?? mov esi, dword ss:[ebp + 0x18<24>]
 6a ff ?? push 0xff<255,-1>
 56 ?? push esi
 ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
 ff 75 0c ?? push dword ss:[ebp + 12]
 e8 66 f0 ff ff ?? call function 0x0040226c

L81: 83 c4 10 ?? add esp, 0x10<16>
 ff 76 1c ?? push dword ds:[esi + 0x1c<28>]
 e8 ab f5 ff ff ?? call function 0x004027bc

L82: 8b 5d 18 ?? mov ebx, dword ss:[ebp + 0x18<24>]

L83: 83 7b 0c 00 ?? cmp dword ds:[ebx + 12], 0
 76 26 ?? jbe basic block L87

L84: 80 7d 1c 00 ?? cmp byte ss:[ebp + 0x1c<28>], 0
 0f 85 29 fe ff ff ?? jne basic block L37

L85: ff 75 24 ?? push dword ss:[ebp + 0x24<36>]
 ff 75 20 ?? push dword ss:[ebp + 0x20<32>]
 ff 75 f8 ?? push dword ss:[ebp + 0xf8<248,-8>]
 53 ?? push ebx
 ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
 ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
 ff 75 0c ?? push dword ss:[ebp + 12]
 56 ?? push esi
 e8 e0 fb ff ff ?? call function 0x00402e1d

L86: 83 c4 20 ?? add esp, 0x20<32>

L87: e8 34 04 00 00 ?? call function 0x00403679

L88: 83 b8 94 00 00 00 00 ?? cmp dword ds:[eax + 0x00000094<148>], 0
 74 05 ?? je basic block L90

L89: e8 c2 07 00 00 ?? call function 0x00403a15

L90: 5f ?? pop edi
 5e ?? pop esi
 5b ?? pop ebx
 c9 ?? leave
 c3 ?? ret

