Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   56 ?? push esi
   8b 75 0c ?? mov esi, dword ss:[ebp + 12]
   57 ?? push edi
   85 f6 ?? test esi, esi
   75 05 ?? jne basic block L3
  
  L2: e8 cb 11 00 00 ?? call function 0x00403b09
  
  L3: 8b 36 ?? mov esi, dword ds:[esi]
   85 f6 ?? test esi, esi
   75 05 ?? jne basic block L5
  
  L4: e8 c0 11 00 00 ?? call function 0x00403b09
  
  L5: 81 3e 63 73 6d e0 ?? cmp dword ds:[esi], 0xe06d7363
   75 1e ?? jne basic block L10
  
  L6: 83 7e 10 03 ?? cmp dword ds:[esi + 0x10<16>], 3
   75 18 ?? jne basic block L10
  
  L7: 8b 46 14 ?? mov eax, dword ds:[esi + 0x14<20>]
   3d 20 05 93 19 ?? cmp eax, 0x19930520
   74 13 ?? je basic block L11
  
  L8: 3d 21 05 93 19 ?? cmp eax, 0x19930521
   74 0c ?? je basic block L11
  
  L9: 3d 22 05 93 19 ?? cmp eax, 0x19930522
   74 05 ?? je basic block L11
  
  L10: e8 95 11 00 00 ?? call function 0x00403b09
  
  L11: 8b 46 1c ?? mov eax, dword ds:[esi + 0x1c<28>]
   8b 40 0c ?? mov eax, dword ds:[eax + 12]
   8b 38 ?? mov edi, dword ds:[eax]
   8d 70 04 ?? lea esi, ds:[eax + 4]
   eb 21 ?? jmp basic block L16
  
  L12: 8b 06 ?? mov eax, dword ds:[esi]
   8b 40 04 ?? mov eax, dword ds:[eax + 4]
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   83 c0 08 ?? add eax, 8
   50 ?? push eax
   e8 a7 ef ff ff ?? call function 0x00401939
  
  L13: 50 ?? push eax
   e8 a8 16 00 00 ?? call function 0x00404040
  
  L14: 59 ?? pop ecx
   59 ?? pop ecx
   85 c0 ?? test eax, eax
   74 0e ?? je basic block L19
  
  L15: 4f ?? dec edi
   83 c6 04 ?? add esi, 4
  
  L16: 85 ff ?? test edi, edi
   7f db ?? jg basic block L12
  
  L17: 33 c0 ?? xor eax, eax
  
  L18: 5f ?? pop edi
   5e ?? pop esi
   5d ?? pop ebp
   c3 ?? ret
  
  L19: 33 c0 ?? xor eax, eax
   40 ?? inc eax
   eb f7 ?? jmp basic block L18
  
  