Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 0c ?? sub esp, 12
   53 ?? push ebx
   33 db ?? xor ebx, ebx
   56 ?? push esi
   3b fb ?? cmp edi, ebx
   75 1e ?? jne basic block L7
  
  L2: e8 35 dd fe ff ?? call function 0x00404e34
  
  L3: 6a 16 ?? push 0x16<22>
  
  L4: 5e ?? pop esi
   89 30 ?? mov dword ds:[eax], esi
  
  L5: 53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   e8 f7 19 ff ff ?? call function 0x00408b05
  
  L6: 83 c4 14 ?? add esp, 0x14<20>
   8b c6 ?? mov eax, esi
   e9 c4 00 00 00 ?? jmp basic block L30
  
  L7: 39 5d 10 ?? cmp dword ss:[ebp + 0x10<16>], ebx
   76 dd ?? jbe basic block L2
  
  L8: 33 c0 ?? xor eax, eax
   39 5d 18 ?? cmp dword ss:[ebp + 0x18<24>], ebx
   88 1f ?? mov byte ds:[edi], bl
   0f 95 c0 ?? setne al
   40 ?? inc eax
   39 45 10 ?? cmp dword ss:[ebp + 0x10<16>], eax
   77 09 ?? ja basic block L11
  
  L9: e8 02 dd fe ff ?? call function 0x00404e34
  
  L10: 6a 22 ?? push 0x22<34>
   eb cb ?? jmp basic block L4
  
  L11: 8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   83 c0 fe ?? add eax, 0xfe<254,-2>
   83 f8 22 ?? cmp eax, 0x22<34>
   77 b9 ?? ja basic block L2
  
  L12: 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
   8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   89 5d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ebx
   8b f7 ?? mov esi, edi
   39 5d 18 ?? cmp dword ss:[ebp + 0x18<24>], ebx
   74 13 ?? je basic block L14
  
  L13: f7 da ?? neg edx
   13 c3 ?? adc eax, ebx
   c6 07 2d ?? mov byte ds:[edi], 0x2d<45>
   8d 77 01 ?? lea esi, ds:[edi + 1]
   c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
   f7 d8 ?? neg eax
  
  L14: 89 75 18 ?? mov dword ss:[ebp + 0x18<24>], esi
   89 5d 0c ?? mov dword ss:[ebp + 12], ebx
  
  L15: ff 75 0c ?? push dword ss:[ebp + 12]
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   50 ?? push eax
   52 ?? push edx
   e8 b9 ec ff ff ?? call function 0x00415e30
  
  L16: 89 5d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ebx
   8b da ?? mov ebx, edx
   8b d0 ?? mov edx, eax
   8b c3 ?? mov eax, ebx
   83 f9 09 ?? cmp ecx, 9
   76 05 ?? jbe basic block L18
  
  L17: 80 c1 57 ?? add cl, 0x57<87>
   eb 03 ?? jmp basic block L19
  
  L18: 80 c1 30 ?? add cl, 0x30<48>
  
  L19: 88 0e ?? mov byte ds:[esi], cl
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   46 ?? inc esi
   41 ?? inc ecx
   89 4d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ecx
   85 c0 ?? test eax, eax
   77 04 ?? ja basic block L21
  
  L20: 85 d2 ?? test edx, edx
   76 08 ?? jbe basic block L23
  
  L21: 3b 4d 10 ?? cmp ecx, dword ss:[ebp + 0x10<16>]
   72 c6 ?? jb basic block L15
  
  L22: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
  
  L23: 3b 4d 10 ?? cmp ecx, dword ss:[ebp + 0x10<16>]
   72 16 ?? jb basic block L26
  
  L24: c6 07 00 ?? mov byte ds:[edi], 0
   e8 80 dc fe ff ?? call function 0x00404e34
  
  L25: 6a 22 ?? push 0x22<34>
   59 ?? pop ecx
   89 08 ?? mov dword ds:[eax], ecx
   8b f1 ?? mov esi, ecx
   33 db ?? xor ebx, ebx
   e9 42 ff ff ff ?? jmp basic block L5
  
  L26: c6 06 00 ?? mov byte ds:[esi], 0
   4e ?? dec esi
  
  L27: 8b 45 18 ?? mov eax, dword ss:[ebp + 0x18<24>]
   8a 10 ?? mov dl, byte ds:[eax]
   8a 0e ?? mov cl, byte ds:[esi]
   88 16 ?? mov byte ds:[esi], dl
   4e ?? dec esi
   88 08 ?? mov byte ds:[eax], cl
   40 ?? inc eax
   89 45 18 ?? mov dword ss:[ebp + 0x18<24>], eax
   3b c6 ?? cmp eax, esi
  
  L28: 72 ec ?? jb basic block L27
  
  L29: 33 c0 ?? xor eax, eax
  
  L30: 5e ?? pop esi
   5b ?? pop ebx
   c9 ?? leave
   c2 14 00 ?? ret 0x0014<20>
  
  