Disassembly: 
  L1: 53 ?? push ebx
   56 ?? push esi
   8b f1 ?? mov esi, ecx
   c7 46 04 01 00 00 00 ?? mov dword ds:[esi + 4], 1
   c6 46 08 61 ?? mov byte ds:[esi + 8], 0x61<97>
   c7 46 0c ff ff ff ff ?? mov dword ds:[esi + 12], 0xffffffff<4294967295,-1>
   c7 06 b4 31 40 00 ?? mov dword ds:[esi], 0x004031b4
   ff 15 f4 30 40 00 ?? call dword ds:[0x004030f4]
  
  L2: 99 ?? cdq
   b9 0a 00 00 00 ?? mov ecx, 10
   f7 f9 ?? idiv ecx
   b8 03 00 00 00 ?? mov eax, 3
   b9 62 00 00 00 ?? mov ecx, 0x00000062<98>
   85 d2 ?? test edx, edx
   0f 94 c3 ?? sete bl
   80 c3 62 ?? add bl, 0x62<98>
   85 d2 ?? test edx, edx
   0f 44 c8 ?? cmove ecx, eax
   33 c0 ?? xor eax, eax
   85 d2 ?? test edx, edx
   0f 95 c0 ?? setne al
   83 c0 fd ?? add eax, 0xfd<253,-3>
   f7 da ?? neg edx
   1b d2 ?? sbb edx, edx
   83 c2 03 ?? add edx, 3
   89 56 04 ?? mov dword ds:[esi + 4], edx
   88 5e 08 ?? mov byte ds:[esi + 8], bl
   89 46 0c ?? mov dword ds:[esi + 12], eax
   8b c6 ?? mov eax, esi
   89 4e 10 ?? mov dword ds:[esi + 0x10<16>], ecx
   5e ?? pop esi
   5b ?? pop ebx
   c3 ?? ret
  
  