Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 7d 08 05 ?? cmp dword ss:[ebp + 8], 5
   56 ?? push esi
   57 ?? push edi
   77 24 ?? ja basic block L7
  
  L2: 83 7d 0c 00 ?? cmp dword ss:[ebp + 12], 0
   74 1e ?? je basic block L7
  
  L3: 33 ff ?? xor edi, edi
   47 ?? inc edi
   57 ?? push edi
   6a 08 ?? push 8
   e8 6c e9 ff ff ?? call function 0x00406838
  
  L4: 8b f0 ?? mov esi, eax
   59 ?? pop ecx
   59 ?? pop ecx
   85 f6 ?? test esi, esi
   75 11 ?? jne basic block L9
  
  L5: e8 1b d1 ff ff ?? call function 0x00404ff4
  
  L6: c7 00 0c 00 00 00 ?? mov dword ds:[eax], 12
  
  L7: 33 c0 ?? xor eax, eax
  
  L8: 5f ?? pop edi
   5e ?? pop esi
   5d ?? pop ebp
   c3 ?? ret
  
  L9: 57 ?? push edi
   68 d8 00 00 00 ?? push 0x000000d8<216>
   e8 48 e9 ff ff ?? call function 0x00406838
  
  L10: 59 ?? pop ecx
   59 ?? pop ecx
   89 06 ?? mov dword ds:[esi], eax
   85 c0 ?? test eax, eax
   75 09 ?? jne basic block L13
  
  L11: 56 ?? push esi
   e8 ef 9b ff ff ?? call function 0x00401aed
  
  L12: 59 ?? pop ecx
   eb d3 ?? jmp basic block L5
  
  L13: 57 ?? push edi
   68 20 02 00 00 ?? push 0x00000220<544>
   e8 2c e9 ff ff ?? call function 0x00406838
  
  L14: 59 ?? pop ecx
   59 ?? pop ecx
   89 46 04 ?? mov dword ds:[esi + 4], eax
   85 c0 ?? test eax, eax
   75 10 ?? jne basic block L18
  
  L15: ff 36 ?? push dword ds:[esi]
   e8 d1 9b ff ff ?? call function 0x00401aed
  
  L16: 56 ?? push esi
   e8 cb 9b ff ff ?? call function 0x00401aed
  
  L17: 59 ?? pop ecx
   eb d9 ?? jmp basic block L12
  
  L18: 8b 06 ?? mov eax, dword ds:[esi]
   b9 d0 84 42 00 ?? mov ecx, 0x004284d0
   e8 c1 f1 ff ff ?? call function 0x004070f2
  
  L19: ff 75 08 ?? push dword ss:[ebp + 8]
   8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
   8b 16 ?? mov edx, dword ds:[esi]
   e8 55 fd ff ff ?? call function 0x00407c93
  
  L20: 59 ?? pop ecx
   85 c0 ?? test eax, eax
   75 19 ?? jne basic block L25
  
  L21: ff 36 ?? push dword ds:[esi]
   e8 0f f1 ff ff ?? call function 0x00407059
  
  L22: ff 36 ?? push dword ds:[esi]
   e8 30 ef ff ff ?? call function 0x00406e81
  
  L23: 56 ?? push esi
   e8 96 9b ff ff ?? call function 0x00401aed
  
  L24: 83 c4 0c ?? add esp, 12
   eb 32 ?? jmp basic block L32
  
  L25: ff 76 04 ?? push dword ds:[esi + 4]
   8b 06 ?? mov eax, dword ds:[esi]
   ff 70 04 ?? push dword ds:[eax + 4]
   e8 93 05 00 00 ?? call function 0x004084fc
  
  L26: 59 ?? pop ecx
   59 ?? pop ecx
   85 c0 ?? test eax, eax
   74 23 ?? je basic block L33
  
  L27: ff 76 04 ?? push dword ds:[esi + 4]
   e8 76 9b ff ff ?? call function 0x00401aed
  
  L28: ff 36 ?? push dword ds:[esi]
   e8 db f0 ff ff ?? call function 0x00407059
  
  L29: ff 36 ?? push dword ds:[esi]
   e8 fc ee ff ff ?? call function 0x00406e81
  
  L30: 56 ?? push esi
   e8 62 9b ff ff ?? call function 0x00401aed
  
  L31: 83 c4 10 ?? add esp, 0x10<16>
  
  L32: 33 f6 ?? xor esi, esi
   eb 0a ?? jmp basic block L34
  
  L33: 8b 46 04 ?? mov eax, dword ds:[esi + 4]
   89 38 ?? mov dword ds:[eax], edi
   8b 46 04 ?? mov eax, dword ds:[esi + 4]
   89 38 ?? mov dword ds:[eax], edi
  
  L34: 8b c6 ?? mov eax, esi
   e9 3e ff ff ff ?? jmp basic block L8
  
  