Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   6a ff ?? push 0xff<255,-1>
   68 80 2e 40 00 ?? push 0x00402e80
   64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
   50 ?? push eax
   83 ec 18 ?? sub esp, 0x18<24>
   56 ?? push esi
   57 ?? push edi
   a1 04 50 40 00 ?? mov eax, dword ds:[0x00405004]
   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
   6a 20 ?? push 0x20<32>
   e8 3c 06 00 00 ?? call function 0x004016ca
  
  L2: 8b f0 ?? mov esi, eax
   0f 57 c0 ?? xorps xmm0, xmm0
   68 44 05 00 00 ?? push 0x00000544<1348>
   0f 11 46 08 ?? movups v4float ds:[esi + 8], xmm0
   c7 46 18 00 00 00 00 ?? mov dword ds:[esi + 0x18<24>], 0
   c7 46 1c 0f 00 00 00 ?? mov dword ds:[esi + 0x1c<28>], 15
   c6 46 08 00 ?? mov byte ds:[esi + 8], 0
   e8 f3 07 00 00 ?? call function 0x004018a6
  
  L3: 83 c4 08 ?? add esp, 8
   c7 00 2a 00 00 00 ?? mov dword ds:[eax], 0x0000002a<42>
   83 c0 04 ?? add eax, 4
   68 b0 13 40 00 ?? push function 0x004013b0
   68 20 13 40 00 ?? push function 0x00401320
   6a 2a ?? push 0x2a<42>
   6a 20 ?? push 0x20<32>
   50 ?? push eax
   89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
   e8 e7 07 00 00 ?? call function 0x004018bd
  
  L4: 6a 18 ?? push 0x18<24>
   e8 ed 05 00 00 ?? call function 0x004016ca
  
  L5: 68 f0 00 00 00 ?? push 0x000000f0<240>
   89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
   e8 bc 07 00 00 ?? call function 0x004018a6
  
  L6: 68 30 31 40 00 ?? push 0x00403130
   6a 20 ?? push 0x20<32>
   89 45 dc ?? mov dword ss:[ebp + 0xdc<220,-36>], eax
   e8 01 06 00 00 ?? call function 0x004016fa
  
  L7: 8b f8 ?? mov edi, eax
   83 c4 10 ?? add esp, 0x10<16>
   85 ff ?? test edi, edi
   74 1b ?? je basic block L9
  
  L8: 0f 57 c0 ?? xorps xmm0, xmm0
   0f 11 47 08 ?? movups v4float ds:[edi + 8], xmm0
   c7 47 18 00 00 00 00 ?? mov dword ds:[edi + 0x18<24>], 0
   c7 47 1c 0f 00 00 00 ?? mov dword ds:[edi + 0x1c<28>], 15
   c6 47 08 00 ?? mov byte ds:[edi + 8], 0
   eb 02 ?? jmp basic block L10
  
  L9: 33 ff ?? xor edi, edi
  
  L10: 68 30 31 40 00 ?? push 0x00403130
   68 44 05 00 00 ?? push 0x00000544<1348>
   e8 81 07 00 00 ?? call function 0x004018af
  
  L11: 83 c4 08 ?? add esp, 8
   85 c0 ?? test eax, eax
   74 22 ?? je basic block L14
  
  L12: 68 b0 13 40 00 ?? push function 0x004013b0
   68 20 13 40 00 ?? push function 0x00401320
   6a 2a ?? push 0x2a<42>
   c7 00 2a 00 00 00 ?? mov dword ds:[eax], 0x0000002a<42>
   83 c0 04 ?? add eax, 4
   6a 20 ?? push 0x20<32>
   50 ?? push eax
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   e8 68 07 00 00 ?? call function 0x004018bd
  
  L13: eb 05 ?? jmp basic block L15
  
  L14: 33 c0 ?? xor eax, eax
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
  
  L15: 68 30 31 40 00 ?? push 0x00403130
   6a 18 ?? push 0x18<24>
   e8 92 05 00 00 ?? call function 0x004016fa
  
  L16: 68 30 31 40 00 ?? push 0x00403130
   68 f0 00 00 00 ?? push 0x000000f0<240>
   89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
   e8 35 07 00 00 ?? call function 0x004018af
  
  L17: 83 c4 10 ?? add esp, 0x10<16>
   89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
   0f 57 c0 ?? xorps xmm0, xmm0
   0f 11 46 08 ?? movups v4float ds:[esi + 8], xmm0
   c7 46 18 00 00 00 00 ?? mov dword ds:[esi + 0x18<24>], 0
   68 b0 13 40 00 ?? push function 0x004013b0
   68 20 13 40 00 ?? push function 0x00401320
   6a 2a ?? push 0x2a<42>
   6a 20 ?? push 0x20<32>
   ff 75 f0 ?? push dword ss:[ebp + 0xf0<240,-16>]
   c7 46 1c 0f 00 00 00 ?? mov dword ds:[esi + 0x1c<28>], 15
   c6 46 08 00 ?? mov byte ds:[esi + 8], 0
   e8 0e 07 00 00 ?? call function 0x004018bd
  
  L18: 8b 4e 1c ?? mov ecx, dword ds:[esi + 0x1c<28>]
   83 f9 10 ?? cmp ecx, 0x10<16>
   72 2c ?? jb basic block L24
  
  L19: 8b 46 08 ?? mov eax, dword ds:[esi + 8]
   41 ?? inc ecx
   81 f9 00 10 00 00 ?? cmp ecx, 0x00001000<4096>
   72 16 ?? jb basic block L22
  
  L20: 8b 50 fc ?? mov edx, dword ds:[eax + 0xfc<252,-4>]
   83 c1 23 ?? add ecx, 0x23<35>
   2b c2 ?? sub eax, edx
   83 c0 fc ?? add eax, 0xfc<252,-4>
   83 f8 1f ?? cmp eax, 0x1f<31>
   0f 87 31 01 00 00 ?? ja basic block L51
  
  L21: 8b c2 ?? mov eax, edx
  
  L22: 51 ?? push ecx
   50 ?? push eax
   e8 b8 06 00 00 ?? call function 0x00401898
  
  L23: 83 c4 08 ?? add esp, 8
  
  L24: 6a 20 ?? push 0x20<32>
   56 ?? push esi
   c7 46 18 00 00 00 00 ?? mov dword ds:[esi + 0x18<24>], 0
   c7 46 1c 0f 00 00 00 ?? mov dword ds:[esi + 0x1c<28>], 15
   c6 46 08 00 ?? mov byte ds:[esi + 8], 0
   e8 9b 06 00 00 ?? call function 0x00401898
  
  L25: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   83 c4 08 ?? add esp, 8
   85 c0 ?? test eax, eax
   74 32 ?? je basic block L29
  
  L26: 68 b0 13 40 00 ?? push function 0x004013b0
   8d 70 fc ?? lea esi, ds:[eax + 0xfc<252,-4>]
   c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
   ff 36 ?? push dword ds:[esi]
   6a 20 ?? push 0x20<32>
   50 ?? push eax
   e8 34 05 00 00 ?? call function 0x00401754
  
  L27: 8b 06 ?? mov eax, dword ds:[esi]
   c1 e0 05 ?? shl eax, 5
   83 c0 04 ?? add eax, 4
   50 ?? push eax
   56 ?? push esi
   e8 8d 04 00 00 ?? call function 0x004016bc
  
  L28: 83 c4 08 ?? add esp, 8
   c7 45 fc ff ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xffffffff<4294967295,-1>
  
  L29: 85 ff ?? test edi, edi
   74 51 ?? je basic block L38
  
  L30: 8b 4f 1c ?? mov ecx, dword ds:[edi + 0x1c<28>]
   83 f9 10 ?? cmp ecx, 0x10<16>
   72 2c ?? jb basic block L36
  
  L31: 8b 47 08 ?? mov eax, dword ds:[edi + 8]
   41 ?? inc ecx
   81 f9 00 10 00 00 ?? cmp ecx, 0x00001000<4096>
   72 16 ?? jb basic block L34
  
  L32: 8b 50 fc ?? mov edx, dword ds:[eax + 0xfc<252,-4>]
   83 c1 23 ?? add ecx, 0x23<35>
   2b c2 ?? sub eax, edx
   83 c0 fc ?? add eax, 0xfc<252,-4>
   83 f8 1f ?? cmp eax, 0x1f<31>
   0f 87 a3 00 00 00 ?? ja basic block L51
  
  L33: 8b c2 ?? mov eax, edx
  
  L34: 51 ?? push ecx
   50 ?? push eax
   e8 2a 06 00 00 ?? call function 0x00401898
  
  L35: 83 c4 08 ?? add esp, 8
  
  L36: 6a 20 ?? push 0x20<32>
   57 ?? push edi
   c7 47 18 00 00 00 00 ?? mov dword ds:[edi + 0x18<24>], 0
   c7 47 1c 0f 00 00 00 ?? mov dword ds:[edi + 0x1c<28>], 15
   c6 47 08 00 ?? mov byte ds:[edi + 8], 0
   e8 0d 06 00 00 ?? call function 0x00401898
  
  L37: 83 c4 08 ?? add esp, 8
  
  L38: 8b 45 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20>]
   85 c0 ?? test eax, eax
   74 2b ?? je basic block L42
  
  L39: 68 b0 13 40 00 ?? push function 0x004013b0
   8d 70 fc ?? lea esi, ds:[eax + 0xfc<252,-4>]
   c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
   ff 36 ?? push dword ds:[esi]
   6a 20 ?? push 0x20<32>
   50 ?? push eax
   e8 a6 04 00 00 ?? call function 0x00401754
  
  L40: 8b 06 ?? mov eax, dword ds:[esi]
   c1 e0 05 ?? shl eax, 5
   83 c0 04 ?? add eax, 4
   50 ?? push eax
   56 ?? push esi
   e8 ff 03 00 00 ?? call function 0x004016bc
  
  L41: 83 c4 08 ?? add esp, 8
  
  L42: 8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
   85 c0 ?? test eax, eax
   74 0b ?? je basic block L45
  
  L43: 6a 18 ?? push 0x18<24>
   50 ?? push eax
   e8 c9 05 00 00 ?? call function 0x00401898
  
  L44: 83 c4 08 ?? add esp, 8
  
  L45: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   85 c0 ?? test eax, eax
   74 09 ?? je basic block L48
  
  L46: 50 ?? push eax
   e8 d8 03 00 00 ?? call function 0x004016b7
  
  L47: 83 c4 04 ?? add esp, 4
  
  L48: 6a 18 ?? push 0x18<24>
   ff 75 e0 ?? push dword ss:[ebp + 0xe0<224,-32>]
   e8 ac 05 00 00 ?? call function 0x00401898
  
  L49: ff 75 dc ?? push dword ss:[ebp + 0xdc<220,-36>]
   e8 c3 03 00 00 ?? call function 0x004016b7
  
  L50: 83 c4 0c ?? add esp, 12
   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
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  L51: ff 15 b0 30 40 00 ?? call dword ds:[0x004030b0<"R=@">]
  
  L52: cc ?? int3
  
  L53: cc ?? int3
  
  L54: cc ?? int3
  
  L55: cc ?? int3
  
  L56: cc ?? int3
  
  L57: cc ?? int3
  
  L58: cc ?? int3
  
  L59: cc ?? int3
  
  L60: cc ?? int3
  
  L61: cc ?? int3
  
  L62: cc ?? int3
  
  L63: cc ?? int3
  
  L64: cc ?? int3
  
  L65: cc ?? int3
  
  L66: cc ?? int3
  
  L67: cc ?? int3
  
  L68: cc ?? int3
  
  L69: cc ?? int3
  
  