Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 38 ?? sub esp, 0x38<56>
   53 ?? push ebx
   81 7d 08 23 01 00 00 ?? cmp dword ss:[ebp + 8], 0x00000123<291>
   75 12 ?? jne basic block L3
  
  L2: b8 6d 15 40 00 ?? mov eax, 0x0040156d
   8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
   89 01 ?? mov dword ds:[ecx], eax
   33 c0 ?? xor eax, eax
   40 ?? inc eax
   e9 b0 00 00 00 ?? jmp basic block L9
  
  L3: 83 65 d8 00 ?? and dword ss:[ebp + 0xd8<216,-40>], 0
   c7 45 dc 99 15 40 00 ?? mov dword ss:[ebp + 0xdc<220,-36>], function 0x00401599
   a1 70 80 42 00 ?? mov eax, dword ds:[0x00428070]
   8d 4d d8 ?? lea ecx, ss:[ebp + 0xd8<216,-40>]
   33 c1 ?? xor eax, ecx
   89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
   8b 45 18 ?? mov eax, dword ss:[ebp + 0x18<24>]
   89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
   8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
   8b 45 1c ?? mov eax, dword ss:[ebp + 0x1c<28>]
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   8b 45 20 ?? mov eax, dword ss:[ebp + 0x20<32>]
   89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
   83 65 f4 00 ?? and dword ss:[ebp + 0xf4<244,-12>], 0
   83 65 f8 00 ?? and dword ss:[ebp + 0xf8<248,-8>], 0
   83 65 fc 00 ?? and dword ss:[ebp + 0xfc<252,-4>], 0
   89 65 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], esp
   89 6d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ebp
   64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
   89 45 d8 ?? mov dword ss:[ebp + 0xd8<216,-40>], eax
   8d 45 d8 ?? lea eax, ss:[ebp + 0xd8<216,-40>]
   64 a3 00 00 00 00 ?? mov dword fs:[0], eax
   c7 45 c8 01 00 00 00 ?? mov dword ss:[ebp + 0xc8<200,-56>], 1
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   89 45 cc ?? mov dword ss:[ebp + 0xcc<204,-52>], eax
   8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
   89 45 d0 ?? mov dword ss:[ebp + 0xd0<208,-48>], eax
   e8 9f 21 00 00 ?? call function 0x004036f1
  
  L4: 8b 80 80 00 00 00 ?? mov eax, dword ds:[eax + 0x00000080<128>]
   89 45 d4 ?? mov dword ss:[ebp + 0xd4<212,-44>], eax
   8d 45 cc ?? lea eax, ss:[ebp + 0xcc<204,-52>]
   50 ?? push eax
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   ff 30 ?? push dword ds:[eax]
   ff 55 d4 ?? call dword ss:[ebp + 0xd4<212,-44>]
  
  L5: 59 ?? pop ecx
   59 ?? pop ecx
   83 65 c8 00 ?? and dword ss:[ebp + 0xc8<200,-56>], 0
   83 7d fc 00 ?? cmp dword ss:[ebp + 0xfc<252,-4>], 0
   74 17 ?? je basic block L7
  
  L6: 64 8b 1d 00 00 00 00 ?? mov ebx, dword fs:[0]
   8b 03 ?? mov eax, dword ds:[ebx]
   8b 5d d8 ?? mov ebx, dword ss:[ebp + 0xd8<216,-40>]
   89 03 ?? mov dword ds:[ebx], eax
   64 89 1d 00 00 00 00 ?? mov dword fs:[0], ebx
   eb 09 ?? jmp basic block L8
  
  L7: 8b 45 d8 ?? mov eax, dword ss:[ebp + 0xd8<216,-40>]
   64 a3 00 00 00 00 ?? mov dword fs:[0], eax
  
  L8: 8b 45 c8 ?? mov eax, dword ss:[ebp + 0xc8<200,-56>]
  
  L9: 5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  