Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   56 ?? push esi
   8b f1 ?? mov esi, ecx
   83 3e 00 ?? cmp dword ds:[esi], 0
   74 09 ?? je basic block L4
  
  L2: 6a 03 ?? push 3
   e8 f2 fd ff ff ?? call function 0x00417dec
  
  L3: eb 61 ?? jmp basic block L20
  
  L4: 57 ?? push edi
   8b 7d 08 ?? mov edi, dword ss:[ebp + 8]
   85 ff ?? test edi, edi
   74 54 ?? je basic block L18
  
  L5: 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   85 c0 ?? test eax, eax
   74 4d ?? je basic block L18
  
  L6: 83 e8 00 ?? sub eax, 0
   74 42 ?? je basic block L17
  
  L7: 48 ?? dec eax
   6a 00 ?? push 0
   b9 d0 64 43 00 ?? mov ecx, 0x004364d0
   74 18 ?? je basic block L12
  
  L8: 6a 0c ?? push 12
   e8 fd f6 ff ff ?? call function 0x0041771e
  
  L9: 85 c0 ?? test eax, eax
   74 25 ?? je basic block L15
  
  L10: ff 75 0c ?? push dword ss:[ebp + 12]
   8b c8 ?? mov ecx, eax
   57 ?? push edi
   e8 7d fe ff ff ?? call function 0x00417ead
  
  L11: eb 1a ?? jmp basic block L16
  
  L12: 6a 08 ?? push 8
   e8 e5 f6 ff ff ?? call function 0x0041771e
  
  L13: 85 c0 ?? test eax, eax
   74 0d ?? je basic block L15
  
  L14: 8a 0f ?? mov cl, byte ds:[edi]
   c7 00 f4 02 43 00 ?? mov dword ds:[eax], 0x004302f4
   88 48 04 ?? mov byte ds:[eax + 4], cl
   eb 02 ?? jmp basic block L16
  
  L15: 33 c0 ?? xor eax, eax
  
  L16: 89 06 ?? mov dword ds:[esi], eax
   85 c0 ?? test eax, eax
   75 0a ?? jne basic block L19
  
  L17: c6 46 04 03 ?? mov byte ds:[esi + 4], 3
   eb 04 ?? jmp basic block L19
  
  L18: c6 46 04 02 ?? mov byte ds:[esi + 4], 2
  
  L19: 5f ?? pop edi
  
  L20: 5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  