Disassembly: 
  L1: 53 ?? push ebx
   8b dc ?? mov ebx, esp
   83 ec 08 ?? sub esp, 8
   83 e4 f8 ?? and esp, 0xf8<248,-8>
   83 c4 04 ?? add esp, 4
   55 ?? push ebp
   8b 6b 04 ?? mov ebp, dword ds:[ebx + 4]
   89 6c 24 04 ?? mov dword ss:[esp + 4], ebp
   8b ec ?? mov ebp, esp
   6a ff ?? push 0xff<255,-1>
   68 2d 33 40 00 ?? push 0x0040332d
   64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
   50 ?? push eax
   53 ?? push ebx
   83 ec 1c ?? sub esp, 0x1c<28>
   56 ?? push esi
   a1 04 60 40 00 ?? mov eax, dword ds:[0x00406004]
   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
   66 a1 00 42 40 00 ?? mov ax, word ds:[0x00404200<"bar">]
   0f 57 c0 ?? xorps xmm0, xmm0
   0f 11 45 d8 ?? movups v4float ss:[ebp + 0xd8<216,-40>], xmm0
   66 89 45 d8 ?? mov word ss:[ebp + 0xd8<216,-40>], ax
   b9 0f 00 00 00 ?? mov ecx, 15
   a0 02 42 40 00 ?? mov al, byte ds:[0x00404202<"r">]
   c7 45 e8 03 00 00 00 ?? mov dword ss:[ebp + 0xe8<232,-24>], 3
   89 4d ec ?? mov dword ss:[ebp + 0xec<236,-20>], ecx
   88 45 da ?? mov byte ss:[ebp + 0xda<218,-38>], al
   c6 45 db 00 ?? mov byte ss:[ebp + 0xdb<219,-37>], 0
   c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
   33 f6 ?? xor esi, esi
   8b 43 0c ?? mov eax, dword ds:[ebx + 12]
   0f af 43 08 ?? imul eax, dword ds:[ebx + 8]
   85 c0 ?? test eax, eax
   7e 34 ?? jle basic block L7
  
  L2: 66 0f 1f 44 00 00 ?? nop word ds:[eax + eax + 0]
  
  L3: 68 40 19 40 00 ?? push function 0x00401940
   51 ?? push ecx
   8b 0d 58 40 40 00 ?? mov ecx, dword ds:[0x00404058]
   8d 55 d8 ?? lea edx, ss:[ebp + 0xd8<216,-40>]
   e8 ac 04 00 00 ?? call function 0x00401920
  
  L4: 83 c4 04 ?? add esp, 4
   8b c8 ?? mov ecx, eax
   ff 15 78 40 40 00 ?? call dword ds:[function 0x00404078<"XP@">]
  
  L5: 8b 43 0c ?? mov eax, dword ds:[ebx + 12]
   46 ?? inc esi
   0f af 43 08 ?? imul eax, dword ds:[ebx + 8]
   3b f0 ?? cmp esi, eax
   7c d5 ?? jl basic block L3
  
  L6: 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
  
  L7: 83 f9 10 ?? cmp ecx, 0x10<16>
   72 2e ?? jb basic block L13
  
  L8: 8b 55 d8 ?? mov edx, dword ss:[ebp + 0xd8<216,-40>]
   41 ?? inc ecx
   8b c2 ?? mov eax, edx
   81 f9 00 10 00 00 ?? cmp ecx, 0x00001000<4096>
   72 16 ?? jb basic block L11
  
  L9: 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>
   76 06 ?? jbe basic block L11
  
  L10: ff 15 f8 40 40 00 ?? call dword ds:[0x004040f8<"nR@">]
  
  L11: 51 ?? push ecx
   52 ?? push edx
   e8 56 0a 00 00 ?? call function 0x00401f14
  
  L12: 83 c4 08 ?? add esp, 8
  
  L13: 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
   5e ?? pop esi
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   8b e3 ?? mov esp, ebx
   5b ?? pop ebx
   c3 ?? ret
  
  