Disassembly: 
  L1: ff 36 ?? push dword ds:[esi]
   e8 4f 22 ff ff ?? call function 0x00406890
  
  L2: 83 e8 03 ?? sub eax, 3
   f7 d8 ?? neg eax
   1b c0 ?? sbb eax, eax
   40 ?? inc eax
   59 ?? pop ecx
   89 46 10 ?? mov dword ds:[esi + 0x10<16>], eax
   74 05 ?? je basic block L4
  
  L3: 6a 02 ?? push 2
   58 ?? pop eax
   eb 07 ?? jmp basic block L5
  
  L4: 8b 16 ?? mov edx, dword ds:[esi]
   e8 92 fb ff ff ?? call function 0x004141ed
  
  L5: 6a 01 ?? push 1
   68 e6 44 41 00 ?? push function 0x004144e6
   89 46 0c ?? mov dword ds:[esi + 12], eax
   ff 15 0c 93 43 00 ?? call dword ds:[0x0043930c]
  
  L6: f6 46 08 04 ?? test byte ds:[esi + 8], 4
   75 04 ?? jne basic block L8
  
  L7: 83 66 08 00 ?? and dword ds:[esi + 8], 0
  
  L8: c3 ?? ret
  
  