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 14 ?? push dword ss:[ebp + 0x14<20>]
   8b d8 ?? mov ebx, eax
   8b 73 04 ?? mov esi, dword ds:[ebx + 4]
   8b f9 ?? mov edi, ecx
   8d 4d f0 ?? lea ecx, ss:[ebp + 0xf0<240,-16>]
   4e ?? dec esi
   e8 69 c4 ff ff ?? call function 0x0040e60f
  
  L2: 85 ff ?? test edi, edi
   75 2d ?? jne basic block L8
  
  L3: e8 e8 be ff ff ?? call function 0x0040e097
  
  L4: 6a 16 ?? push 0x16<22>
   5e ?? pop esi
   89 30 ?? mov dword ds:[eax], esi
   33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 17 80 ff ff ?? call function 0x0040a1d7
  
  L5: 83 c4 14 ?? add esp, 0x14<20>
   80 7d fc 00 ?? cmp byte ss:[ebp + 0xfc<252,-4>], 0
   74 07 ?? je basic block L7
  
  L6: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L7: 8b c6 ?? mov eax, esi
   e9 a3 00 00 00 ?? jmp basic block L30
  
  L8: 83 7d 08 00 ?? cmp dword ss:[ebp + 8], 0
   76 cd ?? jbe basic block L3
  
  L9: 80 7d 10 00 ?? cmp byte ss:[ebp + 0x10<16>], 0
   74 18 ?? je basic block L12
  
  L10: 3b 75 0c ?? cmp esi, dword ss:[ebp + 12]
   75 13 ?? jne basic block L12
  
  L11: 33 c0 ?? xor eax, eax
   83 3b 2d ?? cmp dword ds:[ebx], 0x2d<45>
   0f 94 c0 ?? sete al
   03 c6 ?? add eax, esi
   03 c7 ?? add eax, edi
   c6 00 30 ?? mov byte ds:[eax], 0x30<48>
   c6 40 01 00 ?? mov byte ds:[eax + 1], 0
  
  L12: 83 3b 2d ?? cmp dword ds:[ebx], 0x2d<45>
   8b f7 ?? mov esi, edi
   75 06 ?? jne basic block L14
  
  L13: c6 07 2d ?? mov byte ds:[edi], 0x2d<45>
   8d 77 01 ?? lea esi, ds:[edi + 1]
  
  L14: 8b 43 04 ?? mov eax, dword ds:[ebx + 4]
   33 ff ?? xor edi, edi
   47 ?? inc edi
   85 c0 ?? test eax, eax
   7f 0d ?? jg basic block L17
  
  L15: 8b c6 ?? mov eax, esi
   e8 38 f9 ff ff ?? call function 0x00411b51
  
  L16: c6 06 30 ?? mov byte ds:[esi], 0x30<48>
   46 ?? inc esi
   eb 02 ?? jmp basic block L18
  
  L17: 03 f0 ?? add esi, eax
  
  L18: 83 7d 0c 00 ?? cmp dword ss:[ebp + 12], 0
   7e 44 ?? jle basic block L27
  
  L19: 8b c6 ?? mov eax, esi
   e8 23 f9 ff ff ?? call function 0x00411b51
  
  L20: 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
   8b 5b 04 ?? mov ebx, dword ds:[ebx + 4]
   46 ?? inc esi
   85 db ?? test ebx, ebx
   7d 26 ?? jge basic block L27
  
  L21: f7 db ?? neg ebx
   80 7d 10 00 ?? cmp byte ss:[ebp + 0x10<16>], 0
   75 05 ?? jne basic block L23
  
  L22: 39 5d 0c ?? cmp dword ss:[ebp + 12], ebx
   7c 03 ?? jl basic block L24
  
  L23: 89 5d 0c ?? mov dword ss:[ebp + 12], ebx
  
  L24: 8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
   8b c6 ?? mov eax, esi
   e8 f2 f8 ff ff ?? call function 0x00411b51
  
  L25: 57 ?? push edi
   6a 30 ?? push 0x30<48>
   56 ?? push esi
   e8 88 83 ff ff ?? call function 0x0040a5f0
  
  L26: 83 c4 0c ?? add esp, 12
  
  L27: 80 7d fc 00 ?? cmp byte ss:[ebp + 0xfc<252,-4>], 0
   74 07 ?? je basic block L29
  
  L28: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L29: 33 c0 ?? xor eax, eax
  
  L30: 5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  