Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   56 ?? push esi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   33 d2 ?? xor edx, edx
   57 ?? push edi
   8b f9 ?? mov edi, ecx
   88 57 04 ?? mov byte ds:[edi + 4], dl
   81 67 04 ff 00 ff ff ?? and dword ds:[edi + 4], 0xffff00ff<4294902015,-65281>
   89 17 ?? mov dword ds:[edi], edx
   8b 06 ?? mov eax, dword ds:[esi]
   3b c2 ?? cmp eax, edx
   0f 84 8f 00 00 00 ?? je basic block L26
  
  L2: 38 10 ?? cmp byte ds:[eax], dl
   0f 84 81 00 00 00 ?? je basic block L25
  
  L3: 89 45 08 ?? mov dword ss:[ebp + 8], eax
  
  L4: 8b 0e ?? mov ecx, dword ds:[esi]
   8a 01 ?? mov al, byte ds:[ecx]
   3a 45 0c ?? cmp al, byte ss:[ebp + 12]
   74 4b ?? je basic block L20
  
  L5: 3c 5f ?? cmp al, 0x5f<95>
   74 3c ?? je basic block L19
  
  L6: 3c 24 ?? cmp al, 0x24<36>
   74 38 ?? je basic block L19
  
  L7: 3c 3c ?? cmp al, 0x3c<60>
   74 34 ?? je basic block L19
  
  L8: 3c 3e ?? cmp al, 0x3e<62>
   74 30 ?? je basic block L19
  
  L9: 3c 2d ?? cmp al, 0x2d<45>
   74 2c ?? je basic block L19
  
  L10: 3c 61 ?? cmp al, 0x61<97>
   7c 04 ?? jl basic block L12
  
  L11: 3c 7a ?? cmp al, 0x7a<122>
   7e 24 ?? jle basic block L19
  
  L12: 3c 41 ?? cmp al, 0x41<65>
   7c 04 ?? jl basic block L14
  
  L13: 3c 5a ?? cmp al, 0x5a<90>
   7e 1c ?? jle basic block L19
  
  L14: 3c 30 ?? cmp al, 0x30<48>
   7c 04 ?? jl basic block L16
  
  L15: 3c 39 ?? cmp al, 0x39<57>
   7e 14 ?? jle basic block L19
  
  L16: 3c 80 ?? cmp al, 0x80<128,-128>
   72 04 ?? jb basic block L18
  
  L17: 3c fe ?? cmp al, 0xfe<254,-2>
   76 0c ?? jbe basic block L19
  
  L18: f7 05 68 46 42 00 00 00 ?? test dword ds:[0x00424668], 0x00010000
   01 00
   74 3b ?? je basic block L26
  
  L19: 42 ?? inc edx
   41 ?? inc ecx
   8b c1 ?? mov eax, ecx
   89 0e ?? mov dword ds:[esi], ecx
   80 38 00 ?? cmp byte ds:[eax], 0
   75 ac ?? jne basic block L4
  
  L20: 52 ?? push edx
   ff 75 08 ?? push dword ss:[ebp + 8]
   8b cf ?? mov ecx, edi
   e8 90 fe ff ff ?? call function 0x00404681
  
  L21: 8b 06 ?? mov eax, dword ds:[esi]
   8a 08 ?? mov cl, byte ds:[eax]
   84 c9 ?? test cl, cl
   74 11 ?? je basic block L24
  
  L22: 40 ?? inc eax
   89 06 ?? mov dword ds:[esi], eax
   3a 4d 0c ?? cmp cl, byte ss:[ebp + 12]
   74 19 ?? je basic block L27
  
  L23: 83 27 00 ?? and dword ds:[edi], 0
   c6 47 04 03 ?? mov byte ds:[edi + 4], 3
   eb 10 ?? jmp basic block L27
  
  L24: 80 7f 04 00 ?? cmp byte ds:[edi + 4], 0
   75 0a ?? jne basic block L27
  
  L25: c6 47 04 01 ?? mov byte ds:[edi + 4], 1
   eb 04 ?? jmp basic block L27
  
  L26: c6 47 04 02 ?? mov byte ds:[edi + 4], 2
  
  L27: 8b c7 ?? mov eax, edi
   5f ?? pop edi
   5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  