Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 10 ?? sub esp, 0x10<16>
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   8d 4d f0 ?? lea ecx, ss:[ebp + 0xf0<240,-16>]
   8b d8 ?? mov ebx, eax
   e8 61 ca ff ff ?? call function 0x0040e60f
  
  L2: 33 f6 ?? xor esi, esi
   3b de ?? cmp ebx, esi
   75 2b ?? jne basic block L9
  
  L3: e8 de c4 ff ff ?? call function 0x0040e097
  
  L4: 6a 16 ?? push 0x16<22>
  
  L5: 5f ?? pop edi
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   89 38 ?? mov dword ds:[eax], edi
   e8 0f 86 ff ff ?? call function 0x0040a1d7
  
  L6: 83 c4 14 ?? add esp, 0x14<20>
   80 7d fc 00 ?? cmp byte ss:[ebp + 0xfc<252,-4>], 0
   74 07 ?? je basic block L8
  
  L7: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L8: 8b c7 ?? mov eax, edi
   e9 21 01 00 00 ?? jmp basic block L46
  
  L9: 39 75 08 ?? cmp dword ss:[ebp + 8], esi
   76 d0 ?? jbe basic block L3
  
  L10: 39 75 0c ?? cmp dword ss:[ebp + 12], esi
   7e 05 ?? jle basic block L12
  
  L11: 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   eb 02 ?? jmp basic block L13
  
  L12: 33 c0 ?? xor eax, eax
  
  L13: 83 c0 09 ?? add eax, 9
   39 45 08 ?? cmp dword ss:[ebp + 8], eax
   77 09 ?? ja basic block L16
  
  L14: e8 9a c4 ff ff ?? call function 0x0040e097
  
  L15: 6a 22 ?? push 0x22<34>
   eb ba ?? jmp basic block L5
  
  L16: 80 7d 18 00 ?? cmp byte ss:[ebp + 0x18<24>], 0
   74 1e ?? je basic block L18
  
  L17: 8b 55 14 ?? mov edx, dword ss:[ebp + 0x14<20>]
   33 c0 ?? xor eax, eax
   39 75 0c ?? cmp dword ss:[ebp + 12], esi
   0f 9f c0 ?? setg al
   33 c9 ?? xor ecx, ecx
   83 3a 2d ?? cmp dword ds:[edx], 0x2d<45>
   0f 94 c1 ?? sete cl
   8b f8 ?? mov edi, eax
   03 cb ?? add ecx, ebx
   8b c1 ?? mov eax, ecx
   e8 2c ff ff ff ?? call function 0x00411b51
  
  L18: 8b 7d 14 ?? mov edi, dword ss:[ebp + 0x14<20>]
   83 3f 2d ?? cmp dword ds:[edi], 0x2d<45>
   8b f3 ?? mov esi, ebx
   75 06 ?? jne basic block L20
  
  L19: c6 03 2d ?? mov byte ds:[ebx], 0x2d<45>
   8d 73 01 ?? lea esi, ds:[ebx + 1]
  
  L20: 83 7d 0c 00 ?? cmp dword ss:[ebp + 12], 0
   7e 18 ?? jle basic block L22
  
  L21: 8d 46 01 ?? lea eax, ds:[esi + 1]
   8a 08 ?? mov cl, byte ds:[eax]
   88 0e ?? mov byte ds:[esi], cl
   8b f0 ?? mov esi, eax
   8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   8b 80 bc 00 00 00 ?? mov eax, dword ds:[eax + 0x000000bc<188>]
   8b 00 ?? mov eax, dword ds:[eax]
   8a 00 ?? mov al, byte ds:[eax]
   88 06 ?? mov byte ds:[esi], al
  
  L22: 33 c0 ?? xor eax, eax
   38 45 18 ?? cmp byte ss:[ebp + 0x18<24>], al
   0f 94 c0 ?? sete al
   03 45 0c ?? add eax, dword ss:[ebp + 12]
   03 f0 ?? add esi, eax
   83 7d 08 ff ?? cmp dword ss:[ebp + 8], 0xff<255,-1>
   75 05 ?? jne basic block L24
  
  L23: 83 cb ff ?? or ebx, 0xff<255,-1>
   eb 05 ?? jmp basic block L25
  
  L24: 2b de ?? sub ebx, esi
   03 5d 08 ?? add ebx, dword ss:[ebp + 8]
  
  L25: 68 3c de 43 00 ?? push 0x0043de3c<"e+000">
   53 ?? push ebx
   56 ?? push esi
   e8 5c e8 ff ff ?? call function 0x004104d8
  
  L26: 83 c4 0c ?? add esp, 12
   33 db ?? xor ebx, ebx
   85 c0 ?? test eax, eax
   74 0d ?? je basic block L29
  
  L27: 53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   e8 e1 83 ff ff ?? call function 0x0040a070
  
  L28: 83 c4 14 ?? add esp, 0x14<20>
  
  L29: 8d 4e 02 ?? lea ecx, ds:[esi + 2]
   39 5d 10 ?? cmp dword ss:[ebp + 0x10<16>], ebx
   74 03 ?? je basic block L31
  
  L30: c6 06 45 ?? mov byte ds:[esi], 0x45<69>
  
  L31: 8b 47 0c ?? mov eax, dword ds:[edi + 12]
   46 ?? inc esi
   80 38 30 ?? cmp byte ds:[eax], 0x30<48>
   74 2e ?? je basic block L39
  
  L32: 8b 47 04 ?? mov eax, dword ds:[edi + 4]
   48 ?? dec eax
   79 05 ?? jns basic block L34
  
  L33: f7 d8 ?? neg eax
   c6 06 2d ?? mov byte ds:[esi], 0x2d<45>
  
  L34: 46 ?? inc esi
   83 f8 64 ?? cmp eax, 0x64<100>
   7c 0a ?? jl basic block L36
  
  L35: 99 ?? cdq
   6a 64 ?? push 0x64<100>
   5f ?? pop edi
   f7 ff ?? idiv edi
   00 06 ?? add byte ds:[esi], al
   8b c2 ?? mov eax, edx
  
  L36: 46 ?? inc esi
   83 f8 0a ?? cmp eax, 10
   7c 0a ?? jl basic block L38
  
  L37: 99 ?? cdq
   6a 0a ?? push 10
   5f ?? pop edi
   f7 ff ?? idiv edi
   00 06 ?? add byte ds:[esi], al
   8b c2 ?? mov eax, edx
  
  L38: 00 46 01 ?? add byte ds:[esi + 1], al
  
  L39: f6 05 5c 6a 44 00 01 ?? test byte ds:[0x00446a5c], 1
   74 14 ?? je basic block L43
  
  L40: 80 39 30 ?? cmp byte ds:[ecx], 0x30<48>
   75 0f ?? jne basic block L43
  
  L41: 6a 03 ?? push 3
   8d 41 01 ?? lea eax, ds:[ecx + 1]
   50 ?? push eax
   51 ?? push ecx
   e8 e2 08 00 00 ?? call function 0x004125d0
  
  L42: 83 c4 0c ?? add esp, 12
  
  L43: 80 7d fc 00 ?? cmp byte ss:[ebp + 0xfc<252,-4>], 0
   74 07 ?? je basic block L45
  
  L44: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L45: 33 c0 ?? xor eax, eax
  
  L46: 5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  