
L1: 55 ?? push ebp
 8b ec ?? mov ebp, esp
 6a ff ?? push 0xff<255,-1>
 68 4d 53 40 00 ?? push 0x0040534d
 64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
 50 ?? push eax
 51 ?? push ecx
 83 ec 60 ?? sub esp, 0x60<96>
 53 ?? push ebx
 56 ?? push esi
 57 ?? push edi
 8d 7d 90 ?? lea edi, ss:[ebp + 0x90<144,-112>]
 b9 18 00 00 00 ?? mov ecx, 0x00000018<24>
 b8 cc cc cc cc ?? mov eax, 0xcccccccc
 f3 ab ?? rep_stosd
 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
 c7 45 ec 00 00 00 00 ?? mov dword ss:[ebp + 0xec<236,-20>], 0
 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
 50 ?? push eax
 e8 85 ff ff ff ?? call function 0x00401680

L2: 83 c4 04 ?? add esp, 4
 33 c9 ?? xor ecx, ecx
 89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
 89 4d e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], ecx
 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
 8b 02 ?? mov eax, dword ds:[edx]
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 03 48 04 ?? add ecx, dword ds:[eax + 4]
 8b f4 ?? mov esi, esp
 ff 15 64 60 40 00 ?? call dword ds:[function 0x00406064]

L3: 3b f4 ?? cmp esi, esp
 e8 d0 2b 00 00 ?? call function 0x004042f0

L4: 89 45 b0 ?? mov dword ss:[ebp + 0xb0<176,-80>], eax
 89 55 b4 ?? mov dword ss:[ebp + 0xb4<180,-76>], edx
 83 7d b4 00 ?? cmp dword ss:[ebp + 0xb4<180,-76>], 0
 7c 62 ?? jl basic block L15

L5: 7f 06 ?? jg basic block L7

L6: 83 7d b0 00 ?? cmp dword ss:[ebp + 0xb0<176,-80>], 0
 76 5a ?? jbe basic block L15

L7: 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 8b 11 ?? mov edx, dword ds:[ecx]
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 03 4a 04 ?? add ecx, dword ds:[edx + 4]
 8b f4 ?? mov esi, esp
 ff 15 64 60 40 00 ?? call dword ds:[function 0x00406064]

L8: 3b f4 ?? cmp esi, esp
 e8 a2 2b 00 00 ?? call function 0x004042f0

L9: 89 45 a8 ?? mov dword ss:[ebp + 0xa8<168,-88>], eax
 89 55 ac ?? mov dword ss:[ebp + 0xac<172,-84>], edx
 8b 45 ac ?? mov eax, dword ss:[ebp + 0xac<172,-84>]
 3b 45 e8 ?? cmp eax, dword ss:[ebp + 0xe8<232,-24>]
 7c 32 ?? jl basic block L15

L10: 7f 08 ?? jg basic block L12

L11: 8b 4d a8 ?? mov ecx, dword ss:[ebp + 0xa8<168,-88>]
 3b 4d e4 ?? cmp ecx, dword ss:[ebp + 0xe4<228,-28>]
 76 28 ?? jbe basic block L15

L12: 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
 8b 02 ?? mov eax, dword ds:[edx]
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 03 48 04 ?? add ecx, dword ds:[eax + 4]
 8b f4 ?? mov esi, esp
 ff 15 64 60 40 00 ?? call dword ds:[function 0x00406064]

L13: 3b f4 ?? cmp esi, esp
 e8 70 2b 00 00 ?? call function 0x004042f0

L14: 2b 45 e4 ?? sub eax, dword ss:[ebp + 0xe4<228,-28>]
 1b 55 e8 ?? sbb edx, dword ss:[ebp + 0xe8<232,-24>]
 89 45 a0 ?? mov dword ss:[ebp + 0xa0<160,-96>], eax
 89 55 a4 ?? mov dword ss:[ebp + 0xa4<164,-92>], edx
 eb 08 ?? jmp basic block L16

L15: 0f 57 c0 ?? xorps xmm0, xmm0
 66 0f 13 45 a0 ?? movlpd double ss:[ebp + 0xa0<160,-96>], xmm0

L16: 8b 4d a0 ?? mov ecx, dword ss:[ebp + 0xa0<160,-96>]
 8b 55 a4 ?? mov edx, dword ss:[ebp + 0xa4<164,-92>]
 89 4d dc ?? mov dword ss:[ebp + 0xdc<220,-36>], ecx
 89 55 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], edx
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 50 ?? push eax
 8d 4d d0 ?? lea ecx, ss:[ebp + 0xd0<208,-48>]
 e8 f2 03 00 00 ?? call function 0x00401ba0

L17: c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
 8d 4d d0 ?? lea ecx, ss:[ebp + 0xd0<208,-48>]
 e8 43 03 00 00 ?? call function 0x00401b00

L18: 0f b6 c8 ?? movzx ecx, al
 85 c9 ?? test ecx, ecx
 75 0e ?? jne basic block L20

L19: 8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
 83 ca 04 ?? or edx, 4
 89 55 ec ?? mov dword ss:[ebp + 0xec<236,-20>], edx
 e9 44 02 00 00 ?? jmp basic block L69

L20: c6 45 fc 01 ?? mov byte ss:[ebp + 0xfc<252,-4>], 1
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 8b 08 ?? mov ecx, dword ds:[eax]
 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
 03 51 04 ?? add edx, dword ds:[ecx + 4]
 8b f4 ?? mov esi, esp
 8b ca ?? mov ecx, edx
 ff 15 68 60 40 00 ?? call dword ds:[function 0x00406068]

L21: 3b f4 ?? cmp esi, esp
 e8 fe 2a 00 00 ?? call function 0x004042f0

L22: 25 c0 01 00 00 ?? and eax, 0x000001c0<448>
 83 f8 40 ?? cmp eax, 0x40<64>
 0f 84 ab 00 00 00 ?? je basic block L38

L23: eb 12 ?? jmp basic block L24

L24: 83 7d e0 00 ?? cmp dword ss:[ebp + 0xe0<224,-32>], 0
 0f 8c 8d 00 00 00 ?? jl basic block L38

L25: 7f 0a ?? jg basic block L27

L26: 83 7d dc 00 ?? cmp dword ss:[ebp + 0xdc<220,-36>], 0
 0f 86 81 00 00 00 ?? jbe basic block L38

L27: 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
 8b 02 ?? mov eax, dword ds:[edx]
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 03 48 04 ?? add ecx, dword ds:[eax + 4]
 8b f4 ?? mov esi, esp
 ff 15 80 60 40 00 ?? call dword ds:[function 0x00406080<">|@">]

L28: 3b f4 ?? cmp esi, esp
 e8 ac 2a 00 00 ?? call function 0x004042f0

L29: 8b f4 ?? mov esi, esp
 0f b6 c8 ?? movzx ecx, al
 51 ?? push ecx
 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
 8b 02 ?? mov eax, dword ds:[edx]
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 03 48 04 ?? add ecx, dword ds:[eax + 4]
 8b fc ?? mov edi, esp
 ff 15 84 60 40 00 ?? call dword ds:[function 0x00406084]

L30: 3b fc ?? cmp edi, esp
 e8 8c 2a 00 00 ?? call function 0x004042f0

L31: 8b c8 ?? mov ecx, eax
 ff 15 70 60 40 00 ?? call dword ds:[function 0x00406070<"4}@">]

L32: 3b f4 ?? cmp esi, esp
 e8 7d 2a 00 00 ?? call function 0x004042f0

L33: 89 45 9c ?? mov dword ss:[ebp + 0x9c<156,-100>], eax
 8b 4d 9c ?? mov ecx, dword ss:[ebp + 0x9c<156,-100>]
 89 4d c8 ?? mov dword ss:[ebp + 0xc8<200,-56>], ecx
 e8 bf fd ff ff ?? call function 0x00401640

L34: 89 45 c4 ?? mov dword ss:[ebp + 0xc4<196,-60>], eax
 8d 55 c8 ?? lea edx, ss:[ebp + 0xc8<200,-56>]
 52 ?? push edx
 8d 45 c4 ?? lea eax, ss:[ebp + 0xc4<196,-60>]
 50 ?? push eax
 e8 bf fd ff ff ?? call function 0x00401650

L35: 83 c4 08 ?? add esp, 8
 0f b6 c8 ?? movzx ecx, al
 85 c9 ?? test ecx, ecx
 74 0b ?? je basic block L37

L36: 8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
 83 ca 04 ?? or edx, 4
 89 55 ec ?? mov dword ss:[ebp + 0xec<236,-20>], edx
 eb 05 ?? jmp basic block L38

L37: e9 57 ff ff ff ?? jmp 0x00401802
 8b 45 dc ?? mov eax, dword ss:[ebp + 0xdc<220,-36>]
 83 e8 01 ?? sub eax, 1
 8b 4d e0 ?? mov ecx, dword ss:[ebp + 0xe0<224,-32>]
 83 d9 00 ?? sbb ecx, 0
 89 45 dc ?? mov dword ss:[ebp + 0xdc<220,-36>], eax
 89 4d e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], ecx

L38: 83 7d ec 00 ?? cmp dword ss:[ebp + 0xec<236,-20>], 0
 75 58 ?? jne basic block L46

L39: 8b f4 ?? mov esi, esp
 8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
 50 ?? push eax
 8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
 51 ?? push ecx
 8b 55 0c ?? mov edx, dword ss:[ebp + 12]
 52 ?? push edx
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 8b 08 ?? mov ecx, dword ds:[eax]
 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
 03 51 04 ?? add edx, dword ds:[ecx + 4]
 8b fc ?? mov edi, esp
 8b ca ?? mov ecx, edx
 ff 15 84 60 40 00 ?? call dword ds:[function 0x00406084]

L40: 3b fc ?? cmp edi, esp
 e8 15 2a 00 00 ?? call function 0x004042f0

L41: 8b c8 ?? mov ecx, eax
 ff 15 8c 60 40 00 ?? call dword ds:[function 0x0040608c<"P{@">]

L42: 3b f4 ?? cmp esi, esp
 e8 06 2a 00 00 ?? call function 0x004042f0

L43: 89 45 94 ?? mov dword ss:[ebp + 0x94<148,-108>], eax
 89 55 98 ?? mov dword ss:[ebp + 0x98<152,-104>], edx
 8b 45 94 ?? mov eax, dword ss:[ebp + 0x94<148,-108>]
 3b 45 e4 ?? cmp eax, dword ss:[ebp + 0xe4<228,-28>]
 75 08 ?? jne basic block L45

L44: 8b 4d 98 ?? mov ecx, dword ss:[ebp + 0x98<152,-104>]
 3b 4d e8 ?? cmp ecx, dword ss:[ebp + 0xe8<232,-24>]
 74 09 ?? je basic block L46

L45: 8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
 83 ca 04 ?? or edx, 4
 89 55 ec ?? mov dword ss:[ebp + 0xec<236,-20>], edx

L46: 83 7d ec 00 ?? cmp dword ss:[ebp + 0xec<236,-20>], 0
 0f 85 ab 00 00 00 ?? jne basic block L62

L47: eb 12 ?? jmp basic block L48

L48: 83 7d e0 00 ?? cmp dword ss:[ebp + 0xe0<224,-32>], 0
 0f 8c 8d 00 00 00 ?? jl basic block L62

L49: 7f 0a ?? jg basic block L51

L50: 83 7d dc 00 ?? cmp dword ss:[ebp + 0xdc<220,-36>], 0
 0f 86 81 00 00 00 ?? jbe basic block L62

L51: 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
 8b 02 ?? mov eax, dword ds:[edx]
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 03 48 04 ?? add ecx, dword ds:[eax + 4]
 8b f4 ?? mov esi, esp
 ff 15 80 60 40 00 ?? call dword ds:[function 0x00406080<">|@">]

L52: 3b f4 ?? cmp esi, esp
 e8 99 29 00 00 ?? call function 0x004042f0

L53: 8b f4 ?? mov esi, esp
 0f b6 c8 ?? movzx ecx, al
 51 ?? push ecx
 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
 8b 02 ?? mov eax, dword ds:[edx]
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 03 48 04 ?? add ecx, dword ds:[eax + 4]
 8b fc ?? mov edi, esp
 ff 15 84 60 40 00 ?? call dword ds:[function 0x00406084]

L54: 3b fc ?? cmp edi, esp
 e8 79 29 00 00 ?? call function 0x004042f0

L55: 8b c8 ?? mov ecx, eax
 ff 15 70 60 40 00 ?? call dword ds:[function 0x00406070<"4}@">]

L56: 3b f4 ?? cmp esi, esp
 e8 6a 29 00 00 ?? call function 0x004042f0

L57: 89 45 90 ?? mov dword ss:[ebp + 0x90<144,-112>], eax
 8b 4d 90 ?? mov ecx, dword ss:[ebp + 0x90<144,-112>]
 89 4d c0 ?? mov dword ss:[ebp + 0xc0<192,-64>], ecx
 e8 ac fc ff ff ?? call function 0x00401640

L58: 89 45 bc ?? mov dword ss:[ebp + 0xbc<188,-68>], eax
 8d 55 c0 ?? lea edx, ss:[ebp + 0xc0<192,-64>]
 52 ?? push edx
 8d 45 bc ?? lea eax, ss:[ebp + 0xbc<188,-68>]
 50 ?? push eax
 e8 ac fc ff ff ?? call function 0x00401650

L59: 83 c4 08 ?? add esp, 8
 0f b6 c8 ?? movzx ecx, al
 85 c9 ?? test ecx, ecx
 74 0b ?? je basic block L61

L60: 8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
 83 ca 04 ?? or edx, 4
 89 55 ec ?? mov dword ss:[ebp + 0xec<236,-20>], edx
 eb 05 ?? jmp basic block L62

L61: e9 57 ff ff ff ?? jmp 0x00401915
 8b 45 dc ?? mov eax, dword ss:[ebp + 0xdc<220,-36>]
 83 e8 01 ?? sub eax, 1
 8b 4d e0 ?? mov ecx, dword ss:[ebp + 0xe0<224,-32>]
 83 d9 00 ?? sbb ecx, 0
 89 45 dc ?? mov dword ss:[ebp + 0xdc<220,-36>], eax
 89 4d e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], ecx

L62: 8b f4 ?? mov esi, esp
 6a 00 ?? push 0
 6a 00 ?? push 0
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 8b 08 ?? mov ecx, dword ds:[eax]
 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
 03 51 04 ?? add edx, dword ds:[ecx + 4]
 8b ca ?? mov ecx, edx
 ff 15 60 60 40 00 ?? call dword ds:[function 0x00406060]

L63: 3b f4 ?? cmp esi, esp
 e8 12 29 00 00 ?? call function 0x004042f0

L64: eb 26 ?? jmp 0x00401a06
 c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
 eb 07 ?? jmp basic block L69

L65: 8b f4 ?? mov esi, esp
 6a 01 ?? push 1
 6a 04 ?? push 4
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 8b 08 ?? mov ecx, dword ds:[eax]
 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
 03 51 04 ?? add edx, dword ds:[ecx + 4]
 8b ca ?? mov ecx, edx
 ff 15 88 60 40 00 ?? call dword ds:[function 0x00406088]

L66: 3b f4 ?? cmp esi, esp
 e8 f0 28 00 00 ?? call function 0x004042f0

L67: b8 0f 1a 40 00 ?? mov eax, basic block L68
 c3 ?? ret

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

L69: 8b f4 ?? mov esi, esp
 6a 00 ?? push 0
 8b 45 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20>]
 50 ?? push eax
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 8b 11 ?? mov edx, dword ds:[ecx]
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 03 4a 04 ?? add ecx, dword ds:[edx + 4]
 ff 15 88 60 40 00 ?? call dword ds:[function 0x00406088]

L70: 3b f4 ?? cmp esi, esp
 e8 ba 28 00 00 ?? call function 0x004042f0

L71: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 89 45 b8 ?? mov dword ss:[ebp + 0xb8<184,-72>], eax
 c7 45 fc ff ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xffffffff<4294967295,-1>
 8d 4d d0 ?? lea ecx, ss:[ebp + 0xd0<208,-48>]
 e8 d5 00 00 00 ?? call function 0x00401b20

L72: 8b 45 b8 ?? mov eax, dword ss:[ebp + 0xb8<184,-72>]
 52 ?? push edx
 8b cd ?? mov ecx, ebp
 50 ?? push eax
 8d 15 7c 1a 40 00 ?? lea edx, ds:[0x00401a7c]
 e8 33 28 00 00 ?? call function 0x00404290

L73: 58 ?? pop eax
 5a ?? pop edx
 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
 83 c4 70 ?? add esp, 0x70<112>
 3b ec ?? cmp ebp, esp
 e8 79 28 00 00 ?? call function 0x004042f0

L74: 8b e5 ?? mov esp, ebp
 5d ?? pop ebp
 c3 ?? ret

