Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   56 ?? push esi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   83 7e 08 ff ?? cmp dword ds:[esi + 8], 0xff<255,-1>
   0f 84 29 01 00 00 ?? je basic block L36
  
  L2: 53 ?? push ebx
   57 ?? push edi
   56 ?? push esi
   e8 9f f1 ff ff ?? call function 0x00401680
  
  L3: 83 7d 0c 00 ?? cmp dword ss:[ebp + 12], 0
   59 ?? pop ecx
   bf 63 73 6d e0 ?? mov edi, 0xe06d7363
   bb 20 05 93 19 ?? mov ebx, 0x19930520
   0f 85 84 00 00 00 ?? jne basic block L20
  
  L4: e8 18 11 00 00 ?? call function 0x00403613
  
  L5: 8b 80 88 00 00 00 ?? mov eax, dword ds:[eax + 0x00000088<136>]
   39 38 ?? cmp dword ds:[eax], edi
   75 75 ?? jne basic block L20
  
  L6: e8 09 11 00 00 ?? call function 0x00403613
  
  L7: 8b 80 88 00 00 00 ?? mov eax, dword ds:[eax + 0x00000088<136>]
   83 78 10 03 ?? cmp dword ds:[eax + 0x10<16>], 3
   75 64 ?? jne basic block L20
  
  L8: e8 f8 10 00 00 ?? call function 0x00403613
  
  L9: 8b 80 88 00 00 00 ?? mov eax, dword ds:[eax + 0x00000088<136>]
   39 58 14 ?? cmp dword ds:[eax + 0x14<20>], ebx
   74 28 ?? je basic block L14
  
  L10: e8 e8 10 00 00 ?? call function 0x00403613
  
  L11: 8b 80 88 00 00 00 ?? mov eax, dword ds:[eax + 0x00000088<136>]
   81 78 14 21 05 93 19 ?? cmp dword ds:[eax + 0x14<20>], 0x19930521
   74 14 ?? je basic block L14
  
  L12: e8 d4 10 00 00 ?? call function 0x00403613
  
  L13: 8b 80 88 00 00 00 ?? mov eax, dword ds:[eax + 0x00000088<136>]
   81 78 14 22 05 93 19 ?? cmp dword ds:[eax + 0x14<20>], 0x19930522
   75 2c ?? jne basic block L20
  
  L14: e8 c0 10 00 00 ?? call function 0x00403613
  
  L15: 8b 80 88 00 00 00 ?? mov eax, dword ds:[eax + 0x00000088<136>]
   ff 70 18 ?? push dword ds:[eax + 0x18<24>]
   e8 f8 f0 ff ff ?? call function 0x00401659
  
  L16: 59 ?? pop ecx
   85 c0 ?? test eax, eax
   74 14 ?? je basic block L20
  
  L17: 6a 01 ?? push 1
   e8 a6 10 00 00 ?? call function 0x00403613
  
  L18: ff b0 88 00 00 00 ?? push dword ds:[eax + 0x00000088<136>]
   e8 b4 fd ff ff ?? call function 0x0040232c
  
  L19: 59 ?? pop ecx
   59 ?? pop ecx
  
  L20: e8 94 10 00 00 ?? call function 0x00403613
  
  L21: 8b 80 88 00 00 00 ?? mov eax, dword ds:[eax + 0x00000088<136>]
   39 38 ?? cmp dword ds:[eax], edi
   75 5b ?? jne basic block L33
  
  L22: e8 85 10 00 00 ?? call function 0x00403613
  
  L23: 8b 80 88 00 00 00 ?? mov eax, dword ds:[eax + 0x00000088<136>]
   83 78 10 03 ?? cmp dword ds:[eax + 0x10<16>], 3
   75 4a ?? jne basic block L33
  
  L24: e8 74 10 00 00 ?? call function 0x00403613
  
  L25: 8b 80 88 00 00 00 ?? mov eax, dword ds:[eax + 0x00000088<136>]
   39 58 14 ?? cmp dword ds:[eax + 0x14<20>], ebx
   74 28 ?? je basic block L30
  
  L26: e8 64 10 00 00 ?? call function 0x00403613
  
  L27: 8b 80 88 00 00 00 ?? mov eax, dword ds:[eax + 0x00000088<136>]
   81 78 14 21 05 93 19 ?? cmp dword ds:[eax + 0x14<20>], 0x19930521
   74 14 ?? je basic block L30
  
  L28: e8 50 10 00 00 ?? call function 0x00403613
  
  L29: 8b 80 88 00 00 00 ?? mov eax, dword ds:[eax + 0x00000088<136>]
   81 78 14 22 05 93 19 ?? cmp dword ds:[eax + 0x14<20>], 0x19930522
   75 12 ?? jne basic block L33
  
  L30: 83 7d 0c 00 ?? cmp dword ss:[ebp + 12], 0
   74 0c ?? je basic block L33
  
  L31: e8 36 10 00 00 ?? call function 0x00403613
  
  L32: 05 90 00 00 00 ?? add eax, 0x00000090<144>
   ff 08 ?? dec dword ds:[eax]
  
  L33: e8 2a 10 00 00 ?? call function 0x00403613
  
  L34: 8b 4e 08 ?? mov ecx, dword ds:[esi + 8]
   89 88 88 00 00 00 ?? mov dword ds:[eax + 0x00000088<136>], ecx
   e8 1c 10 00 00 ?? call function 0x00403613
  
  L35: 8b 4e 0c ?? mov ecx, dword ds:[esi + 12]
   5f ?? pop edi
   89 88 8c 00 00 00 ?? mov dword ds:[eax + 0x0000008c<140>], ecx
   5b ?? pop ebx
  
  L36: 5e ?? pop esi
   5d ?? pop ebp
   c3 ?? ret
  
  