Function at 0x4171d8
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, edx
push ebx
sub esp, 0x11c
mov ebx, eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x48], 0
movzx ecx, byte [esi]
test cl, cl
je 0x4172ad
mov eax, dword [sym.imp.msvcrt.dll___mb_cur_max]
movsx edx, cl
cmp dword [eax], 1
jne 0x4173f0
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov eax, dword [eax]
movzx eax, word [eax + edx*2]
and eax, 8
test eax, eax
jne 0x417283
jmp 0x417409
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov eax, dword [eax]
movzx eax, word [eax + edx*2]
and eax, 8
test eax, eax
je 0x4172a5
inc ebx
movsx edx, byte [ebx]
mov eax, dword [sym.imp.msvcrt.dll___mb_cur_max]
cmp dword [eax], 1
je 0x417270
mov dword [esp], edx
mov eax, 8
mov dword [esp + 4], eax
call sub.msvcrt.dll__isctype
test eax, eax
jne 0x417282
inc esi
movzx ecx, byte [esi]
test cl, cl
jne 0x417243
mov eax, dword [ebp - 0x20]
test eax, eax
setne al
xor edx, edx
cmp dword [ebp - 0x24], 0
setne dl
test eax, edx
je 0x4172c9
mov eax, dword [ebp + 8]
add dword [eax + 8], 0xc
cmp dword [ebp - 0x28], 0xffffffff
je 0x417312
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x417762
mov edx, dword [ebp + 8]
mov eax, 0x51eb851f
mov ecx, dword [edx + 0x14]
imul ecx
mov eax, ecx
mov esi, edx
sar esi, 5
cdq
sub esi, edx
lea eax, [esi + esi*4]
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
shl eax, 2
sub ecx, eax
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*4 - 0x76c]
mov eax, dword [ebp + 8]
mov dword [eax + 0x14], edi
mov edi, dword [ebp - 0x34]
test edi, edi
setne al
xor edx, edx
cmp dword [ebp - 0x30], 0
sete dl
test eax, edx
je 0x4174f3
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
test esi, esi
sete al
test ecx, ecx
sete dl
or eax, edx
test al, 1
je 0x4174eb
mov edx, dword [ebp - 0x38]
test edx, edx
je 0x4174eb
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0xbc], eax
mov eax, 0x51eb851f
mov edi, dword [edx + 0x14]
mov esi, dword [edx + 0x1c]
lea ecx, [edi + 0x76c]
imul ecx
mov dword [ebp - 0xf4], edx
mov edx, ecx
sar edx, 0x1f
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xfc], edx
xor edx, edx
test cl, 3
jne 0x4173cc
mov eax, dword [ebp - 0xf4]
sar eax, 5
sub eax, dword [ebp - 0xfc]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cmp ecx, eax
jne 0x4177ae
mov eax, dword [ebp - 0xf4]
sar eax, 7
sub eax, dword [ebp - 0xfc]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 4
cmp ecx, eax
je 0x4177ae
lea eax, [edx + edx]
add eax, edx
lea eax, [edx + eax*4]
mov edx, dword [ebp - 0xbc]
add eax, edx
movzx eax, word [eax + eax + 0x50b320]
cmp eax, esi
jg 0x417437
inc dword [ebp - 0xbc]
jmp 0x417385
mov dword [esp], edx
mov ecx, 8
mov dword [esp + 4], ecx
call sub.msvcrt.dll__isctype
test eax, eax
jne 0x417283
movzx edx, byte [esi]
cmp dl, 0x25
je 0x417747
movzx eax, byte [ebx]
inc esi
inc ebx
cmp dl, al
je case.0x41775b.90
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x18]
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x41744b
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp + 8]
dec eax
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x40]
test ecx, ecx
jne 0x4174eb
add edi, 0x76c
xor ecx, ecx
mov dword [ebp - 0x110], edi
and edi, 3
jne 0x4174c8
mov eax, dword [ebp - 0x110]
mov edi, 0x51eb851f
imul edi
mov edi, dword [ebp - 0x110]
sar edi, 0x1f
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xc4]
sar eax, 5
sub eax, edi
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cmp dword [ebp - 0x110], eax
jne 0x4174c3
mov eax, dword [ebp - 0xc4]
sar eax, 7
sub eax, edi
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 4
cmp dword [ebp - 0x110], eax
jne 0x4174c8
mov ecx, 1
mov edx, dword [ebp - 0xbc]
lea eax, [ecx + ecx]
add eax, ecx
lea eax, [ecx + eax*4]
add eax, edx
mov edx, dword [ebp + 8]
movzx eax, word [eax + eax + 0x50b31e]
sub esi, eax
lea eax, [esi + 1]
mov dword [edx + 0xc], eax
mov eax, dword [ebp + 8]
call fcn.004170c0
mov edi, dword [ebp - 0x34]
test edi, edi
setne al
xor edx, edx
cmp dword [ebp - 0x38], 0
sete dl
test eax, edx
je 0x417597
mov eax, dword [ebp + 8]
xor ecx, ecx
mov edx, dword [eax + 0x14]
add edx, 0x76c
test dl, 3
mov dword [ebp - 0x110], edx
jne 0x417574
mov esi, 0x51eb851f
mov eax, edx
imul esi
mov eax, edx
mov edi, edx
mov edx, dword [ebp - 0x110]
sar eax, 5
sar edx, 0x1f
sub eax, edx
mov dword [ebp - 0xcc], edx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cmp dword [ebp - 0x110], eax
jne 0x41756f
mov eax, edi
sar eax, 7
sub eax, edx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 4
cmp dword [ebp - 0x110], eax
jne 0x417574
mov ecx, 1
mov edx, dword [ebp + 8]
lea eax, [ecx + ecx]
add eax, ecx
lea eax, [ecx + eax*4]
mov esi, dword [edx + 0x10]
mov ecx, dword [edx + 0xc]
add eax, esi
movzx eax, word [eax + eax + 0x50b320]
add eax, ecx
lea esi, [eax - 1]
mov dword [edx + 0x1c], esi
mov eax, dword [ebp - 0x44]
or eax, dword [ebp - 0x48]
setne al
xor edx, edx
cmp dword [ebp - 0x30], 0
setne dl
test eax, edx
jne 0x4175be
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x18]
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 0x10]
xor eax, eax
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0xd0], edx
mov edx, dword [ebp + 8]
sete al
mov dword [ebp - 0xd4], eax
mov eax, edx
mov dword [edx + 0xc], 1
mov dword [edx + 0x10], 0
call fcn.004170c0
mov eax, dword [ebp - 0x40]
test eax, eax
jne 0x4178a5
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x417612
mov edx, dword [ebp + 8]
mov dword [edx + 0x10], edi
mov edi, dword [ebp - 0x38]
test edi, edi
jne 0x417689
mov eax, dword [ebp + 8]
mov ecx, 0x92492493
mov esi, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xd0]
mov edx, dword [eax + 0x18]
sub edx, esi
mov esi, 7
sub esi, edx
mov eax, esi
imul ecx
mov ecx, esi
sar ecx, 0x1f
mov dword [ebp - 0x10c], edx
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x10c]
lea edx, [esi + eax]
sar edx, 2
mov eax, esi
sub edx, ecx
lea ecx, [edx*8]
mov esi, dword [ebp - 0xd4]
sub ecx, edx
mov edx, dword [ebp - 0x4c]
sub eax, ecx
mov ecx, dword [ebp - 0x4c]
shl edx, 3
sub edx, ecx
add eax, edx
add eax, edi
mov edx, dword [ebp + 8]
sub eax, esi
lea esi, [eax - 7]
mov dword [edx + 0x1c], esi
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
test ecx, ecx
sete al
test edx, edx
sete dl
or eax, edx
test al, 1
je 0x417891
xor eax, eax
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x14]
mov esi, dword [eax + 0x1c]
mov eax, 0x51eb851f
lea ecx, [edi + 0x76c]
imul ecx
mov dword [ebp - 0xe4], edx
mov edx, ecx
sar edx, 0x1f
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xec], edx
xor edx, edx
test cl, 3
jne 0x41771f
mov eax, dword [ebp - 0xe4]
sar eax, 5
sub eax, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cmp ecx, eax
jne 0x4177b8
mov eax, dword [ebp - 0xe4]
sar eax, 7
sub eax, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 4
cmp ecx, eax
je 0x4177b8
lea eax, [edx + edx]
add eax, edx
lea eax, [edx + eax*4]
mov edx, dword [ebp - 0xd8]
add eax, edx
movzx eax, word [eax + eax + 0x50b320]
cmp eax, esi
jg 0x4177dd
inc dword [ebp - 0xd8]
jmp 0x4176d8
inc esi
movzx ecx, byte [esi]
movsx eax, cl
inc esi
sub eax, 0x25
cmp eax, 0x55
ja case.0x41775b.38
jmp dword [eax*4 + 0x50b4d0]
mov edx, dword [ebp - 0x28]
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
lea edi, [eax*4 - 0x76c]
jmp 0x41730c
mov eax, dword [sym.imp.msvcrt.dll__pctype]
mov eax, dword [eax]
movzx eax, word [eax + edx*2]
and eax, 8
test eax, eax
je case.0x41775b.90
inc ebx
movsx edx, byte [ebx]
mov eax, dword [sym.imp.msvcrt.dll___mb_cur_max]
cmp dword [eax], 1
je 0x417777
mov dword [esp], edx
mov eax, 8
mov dword [esp + 4], eax
call sub.msvcrt.dll__isctype
jmp 0x417785
mov edx, 1
jmp 0x4173cc
mov edx, 1
lea eax, [edx + edx]
add eax, edx
lea eax, [edx + eax*4]
mov edx, dword [ebp - 0xd8]
add eax, edx
movzx eax, word [eax + eax + 0x50b320]
cmp eax, esi
jle 0x41773f
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x4177f1
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp + 8]
dec eax
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x40]
test ecx, ecx
jne 0x417891
add edi, 0x76c
xor ecx, ecx
mov dword [ebp - 0x110], edi
and edi, 3
jne 0x41786e
mov eax, dword [ebp - 0x110]
mov edi, 0x51eb851f
imul edi
mov edi, dword [ebp - 0x110]
sar edi, 0x1f
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xdc]
sar eax, 5
sub eax, edi
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cmp dword [ebp - 0x110], eax
jne 0x417869
mov eax, dword [ebp - 0xdc]
sar eax, 7
sub eax, edi
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 4
cmp dword [ebp - 0x110], eax
jne 0x41786e
mov ecx, 1
mov edx, dword [ebp - 0xd8]
lea eax, [ecx + ecx]
add eax, ecx
lea eax, [ecx + eax*4]
add eax, edx
mov edx, dword [ebp + 8]
movzx eax, word [eax + eax + 0x50b31e]
sub esi, eax
lea eax, [esi + 1]
mov dword [edx + 0xc], eax
mov dword [ebp - 0x18], ebx
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], edx
jmp 0x4175b0
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], esi
jmp 0x417605
mov dword [ebp - 0x1c], 0
mov eax, 0x50b440
mov dword [ebp - 0x104], eax
mov eax, dword [ebp + 0xc]
cmp dword [eax], 1
je 0x417922
mov edx, dword [ebp - 0x104]
mov edi, dword [ebp - 0x1c]
mov dword [esp], edx
shl edi, 2
call sub.msvcrt.dll_strlen
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x104]
mov dword [esp], eax
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x418626
add edi, 0x50b418
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4185bc
inc dword [ebp - 0x1c]
add dword [ebp - 0x104], 0xa
cmp dword [ebp - 0x1c], 6
jle 0x4178c2
cmp dword [ebp - 0x1c], 7
je case.0x41775b.38
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], eax
mov dword [ebp - 0x30], 1
jmp case.0x41775b.90
mov edx, dword [ebp + 0x10]
mov dword [esp + 8], edx
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov edx, dword [ebp + 8]
mov dword [esp], edx
mov edx, 0x50b486
mov eax, ebx
call fcn.004171d8
test eax, eax
mov ebx, eax
je case.0x41775b.38
mov dword [ebp - 0x34], 1
jmp case.0x41775b.90
mov dword [ebp - 0x78], 2
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x4179a1
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417998
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x78]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x78]
test eax, eax
jle 0x4179d9
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x35
ja 0x4179d9
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x4179d9
cmp cl, 0x39
jle 0x4179ad
cmp edi, 0x35
ja case.0x41775b.38
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x44], 1
jmp case.0x41775b.90
mov dword [ebp - 0x80], 2
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417a0b
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417a02
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x80]
lea edx, [edi + edi*4]
movsx eax, cl
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov edx, dword [ebp - 0x80]
test edx, edx
jle 0x417a43
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x35
ja 0x417a43
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417a43
cmp cl, 0x39
jle 0x417a17
cmp edi, 0x35
jbe case.0x41775b.90
jmp case.0x41775b.38
mov dword [ebp - 0x7c], 2
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417a6b
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417a62
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x7c]
movsx eax, cl
lea edx, [edi + edi*4]
inc ebx
lea edi, [eax + edx*2 - 0x30]
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
jle 0x417aa3
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x35
ja 0x417aa3
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417aa3
cmp cl, 0x39
jle 0x417a77
cmp edi, 0x35
ja case.0x41775b.38
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 1
jmp case.0x41775b.90
mov dword [esp + 4], ebx
mov eax, 2
mov dword [esp + 8], eax
mov dword [esp], 0x50b49b
call sub.msvcrt.dll__strnicmp
test eax, eax
jne 0x4184bf
add ebx, 2
jmp case.0x41775b.90
mov dword [ebp - 0x68], 2
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417afe
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417af5
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x68]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x68]
test eax, eax
jle 0x417b36
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x3b
ja 0x417b36
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417b36
cmp cl, 0x39
jle 0x417b0a
cmp edi, 0x3b
ja case.0x41775b.38
mov eax, dword [ebp + 8]
mov dword [eax + 4], edi
jmp case.0x41775b.90
mov dword [ebp - 0x60], 3
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417b64
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417b5b
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x60]
lea edx, [edi + edi*4]
movsx eax, cl
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov edx, dword [ebp - 0x60]
test edx, edx
jle 0x417b9e
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x16e
ja 0x417b9e
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417b9e
cmp cl, 0x39
jle 0x417b70
lea eax, [edi - 1]
cmp eax, 0x16d
ja case.0x41775b.38
mov dword [ebp - 0x38], 1
mov edx, dword [ebp + 8]
mov dword [edx + 0x1c], eax
jmp case.0x41775b.90
mov eax, 4
xor edi, edi
mov dword [ebp - 0x8c], eax
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417bdc
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417bd3
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x8c]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x8c]
test eax, eax
jle 0x417c1c
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x270f
ja 0x417c1c
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417c1c
cmp cl, 0x39
jle 0x417be8
cmp edi, 0x270f
ja case.0x41775b.38
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp + 8]
sub edi, 0x76c
mov dword [eax + 0x14], edi
jmp 0x41797b
mov dword [ebp - 0x50], 2
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417c5a
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417c51
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x50]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x50]
test eax, eax
jle 0x417c92
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x63
ja 0x417c92
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417c92
cmp cl, 0x39
jle 0x417c66
cmp edi, 0x63
ja case.0x41775b.38
mov dword [ebp - 0x28], edi
jmp 0x41797b
mov eax, 1
xor edi, edi
mov dword [ebp - 0x84], eax
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417cc1
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417cb8
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x84]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x84]
test eax, eax
jle 0x417cff
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 6
ja 0x417cff
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417cff
cmp cl, 0x39
jle 0x417ccd
cmp edi, 6
ja case.0x41775b.38
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], edi
jmp 0x417945
mov dword [ebp - 0x74], 2
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417d2d
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417d24
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x74]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x74]
test eax, eax
jle 0x417d65
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x63
ja 0x417d65
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417d65
cmp cl, 0x39
jle 0x417d39
cmp edi, 0x63
jmp 0x417a46
mov edx, dword [ebp + 0x10]
mov dword [esp + 8], edx
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov edx, dword [ebp + 8]
mov dword [esp], edx
mov edx, 0x50b49e
mov eax, ebx
call fcn.004171d8
mov ebx, eax
test eax, eax
jne case.0x41775b.90
jmp case.0x41775b.38
mov dword [ebp - 0x14], 0
movzx eax, byte [ebx]
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
mov eax, dword [ebp - 0x14]
lea eax, [eax + eax*4]
add eax, eax
mov dword [ebp - 0x14], eax
movsx edx, byte [ebx]
inc ebx
lea edx, [edx + eax - 0x30]
mov dword [ebp - 0x14], edx
movzx eax, byte [ebx]
sub al, 0x30
cmp al, 9
jbe 0x417db4
mov edx, dword [ebp + 8]
lea eax, [ebp - 0x14]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00418a84
test eax, eax
jmp 0x417d91
movzx eax, byte [ebx]
inc ebx
cmp al, 0x25
jmp 0x41741c
mov edx, dword [ebp + 0x10]
mov dword [esp + 8], edx
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov edx, dword [ebp + 8]
mov dword [esp], edx
mov edx, 0x50b4a7
jmp 0x417d86
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov edx, dword [ebp + 0xc]
mov dword [esp + 4], edx
mov eax, dword [ebp + 8]
mov edx, str._H:_M
mov dword [esp], eax
jmp 0x417d86
mov dword [ebp - 0x6c], 2
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417e4a
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417e41
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x6c]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x6c]
test eax, eax
jle 0x417e82
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x3d
ja 0x417e82
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417e82
cmp cl, 0x39
jle 0x417e56
cmp edi, 0x3d
ja case.0x41775b.38
mov eax, dword [ebp + 8]
mov dword [eax], edi
jmp case.0x41775b.90
movsx eax, byte [esi]
inc esi
sub eax, 0x48
cmp eax, 0x31
ja case.0x41775b.38
jmp dword [eax*4 + 0x50b628]
mov dword [ebp - 0x5c], 2
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417ec6
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417ebd
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x5c]
movsx eax, cl
lea edx, [edi + edi*4]
inc ebx
lea edi, [eax + edx*2 - 0x30]
mov ecx, dword [ebp - 0x5c]
test ecx, ecx
jle 0x417efe
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0xc
ja 0x417efe
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417efe
cmp cl, 0x39
jle 0x417ed2
lea eax, [edi - 1]
cmp eax, 0xb
ja case.0x41775b.38
mov dword [ebp - 0x20], 1
mov eax, edi
mov edx, 0xaaaaaaab
mul edx
shr edx, 3
lea edx, [edx + edx*2]
shl edx, 2
sub edi, edx
mov edx, dword [ebp + 8]
mov dword [edx + 8], edi
jmp case.0x41775b.90
mov dword [ebp - 0x58], 2
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417f4a
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417f41
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x58]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x58]
test eax, eax
jle 0x417f82
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x17
ja 0x417f82
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417f82
cmp cl, 0x39
jle 0x417f56
cmp edi, 0x17
ja case.0x41775b.38
mov edx, dword [ebp + 8]
mov dword [edx + 8], edi
mov dword [ebp - 0x20], 0
jmp case.0x41775b.90
mov dword [ebp - 0x54], 2
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x417fb7
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x417fae
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x54]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x54]
test eax, eax
jle 0x417fef
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x1f
ja 0x417fef
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417fef
cmp cl, 0x39
jle 0x417fc3
lea eax, [edi - 1]
cmp eax, 0x1e
ja case.0x41775b.38
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], edi
mov dword [ebp - 0x40], 1
jmp 0x41797b
movzx ecx, byte [ebx]
xor edi, edi
cmp cl, 0x20
jne 0x418020
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x418017
cmp cl, 0x2b
setne al
xor edx, edx
cmp cl, 0x2d
setne dl
test eax, edx
jne case.0x41775b.38
inc ebx
xor ecx, ecx
movzx eax, byte [ebx]
cmp al, 0x2f
jle case.0x41775b.38
cmp al, 0x39
jg case.0x41775b.38
inc ecx
lea edx, [edi + edi*4]
movsx eax, al
inc ebx
cmp ecx, 3
lea edi, [eax + edx*2 - 0x30]
jg 0x418068
movzx eax, byte [ebx]
cmp al, 0x2f
jle 0x418068
cmp al, 0x39
jle 0x41804c
cmp ecx, 2
je 0x4184ef
cmp ecx, 4
jne case.0x41775b.38
mov eax, edi
mov edx, 0x51eb851f
mul edx
mov eax, edi
shr edx, 5
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
lea ecx, [edx*4]
sub eax, ecx
cmp eax, 0x3b
ja case.0x41775b.38
lea edx, [eax + eax*4]
lea edx, [edx + edx*4]
mov eax, 0x88888889
add edx, edx
mul edx
shr edx, 4
lea edi, [ecx + edx]
cmp edi, 0x4b0
jmp 0x417a46
mov dword [ebp - 0x64], 2
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x4180da
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x4180d1
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x64]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x64]
test eax, eax
jle 0x418112
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0xc
ja 0x418112
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x418112
cmp cl, 0x39
jle 0x4180e6
lea eax, [edi - 1]
cmp eax, 0xb
ja case.0x41775b.38
mov dword [ebp - 0x3c], 1
mov edx, dword [ebp + 8]
mov dword [edx + 0x10], eax
jmp 0x41797b
mov edx, dword [ebp + 0x10]
mov dword [esp + 8], edx
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov edx, dword [ebp + 8]
mov dword [esp], edx
mov edx, str._Y__m__d
jmp 0x41796a
mov dword [ebp - 0x1c], 0
mov eax, 0x50b3a0
mov dword [ebp - 0x100], eax
mov edx, dword [ebp - 0x100]
mov edi, dword [ebp - 0x1c]
mov dword [esp], edx
shl edi, 2
call sub.msvcrt.dll_strlen
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x100]
mov dword [esp], eax
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x418501
add edi, 0x50b360
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
call sub.msvcrt.dll__strnicmp
test eax, eax
je 0x4184a7
inc dword [ebp - 0x1c]
add dword [ebp - 0x100], 0xa
cmp dword [ebp - 0x1c], 0xb
jle 0x418160
cmp dword [ebp - 0x1c], 0xc
je case.0x41775b.38
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp + 8]
mov dword [edx + 0x10], eax
jmp 0x41797b
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov edx, dword [ebp + 0xc]
mov dword [esp + 4], edx
mov eax, dword [ebp + 8]
mov edx, 0x50b4c2
mov dword [esp], eax
jmp 0x41796a
movzx ecx, byte [esi]
cmp cl, 0x63
setne al
xor edx, edx
cmp cl, 0x43
setne dl
test eax, edx
je 0x41774b
cmp cl, 0x79
je 0x41774b
cmp cl, 0x59
je 0x41774b
cmp cl, 0x78
je 0x41774b
cmp cl, 0x58
je 0x41774b
jmp case.0x41775b.38
movzx eax, byte [ebx]
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
inc ebx
movzx eax, byte [ebx]
sub al, 0x30
cmp al, 9
jbe 0x41824d
jmp case.0x41775b.90
mov eax, 2
xor edi, edi
mov dword [ebp - 0x88], eax
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x41827a
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x418271
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x88]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x88]
test eax, eax
jle 0x4182b8
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x63
ja 0x4182b8
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x4182b8
cmp cl, 0x39
jle 0x418286
cmp edi, 0x63
ja case.0x41775b.38
cmp edi, 0x44
mov eax, edi
ja 0x4182cb
lea eax, [edi + 0x64]
mov dword [ebp - 0x2c], 1
mov edx, dword [ebp + 8]
mov dword [edx + 0x14], eax
jmp 0x41797b
mov dword [ebp - 0x70], 1
xor edi, edi
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x4182f7
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
je 0x4182ee
mov al, cl
sub al, 0x30
cmp al, 9
ja case.0x41775b.38
dec dword [ebp - 0x70]
movsx eax, cl
lea edx, [edi + edi*4]
inc ebx
lea edi, [eax + edx*2 - 0x30]
mov ecx, dword [ebp - 0x70]
test ecx, ecx
jle 0x41832f
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 7
ja 0x41832f
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x41832f
cmp cl, 0x39
jle 0x418303
lea eax, [edi - 1]
cmp eax, 6
ja case.0x41775b.38
mov eax, edi
mov ecx, 0x24924925
mul ecx
mov dword [ebp - 0x110], eax
mov eax, edi
sub eax, edx
mov dword [ebp - 0x10c], edx
shr eax, 1
mov edx, dword [ebp - 0x10c]
add eax, edx
shr eax, 2
lea edx, [eax*8]
sub edx, eax
sub edi, edx
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], edi
jmp 0x417945
mov eax, 2
xor edi, edi
mov dword [ebp - 0xb8], eax
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x418636
inc ebx
jmp 0x418384
mov ecx, 2
xor edi, edi
mov dword [ebp - 0x90], ecx
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x418566
inc ebx
jmp 0x4183a0
mov eax, 1
xor edi, edi
mov dword [ebp - 0xb4], eax
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x418783
inc ebx
jmp 0x4183bc
mov eax, 2
xor edi, edi
mov dword [ebp - 0xa4], eax
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x4185d4
inc ebx
jmp 0x4183d8
mov eax, 2
xor edi, edi
mov dword [ebp - 0x9c], eax
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x4186e3
inc ebx
jmp 0x4183f4
mov ecx, 2
xor edi, edi
mov dword [ebp - 0xb0], ecx
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x418823
inc ebx
jmp 0x418410
mov eax, 2
xor edi, edi
mov dword [ebp - 0x98], eax
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x418693
inc ebx
jmp 0x41842c
mov eax, 2
xor edi, edi
mov dword [ebp - 0xac], eax
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x4187d3
inc ebx
jmp 0x418448
mov ecx, 2
xor edi, edi
mov dword [ebp - 0xa0], ecx
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x418733
inc ebx
jmp 0x418464
mov eax, 2
xor edi, edi
mov dword [ebp - 0xa8], eax
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x418873
inc ebx
jmp 0x418480
mov eax, 2
xor edi, edi
mov dword [ebp - 0x94], eax
movzx ecx, byte [ebx]
cmp cl, 0x20
jne 0x418511
inc ebx
jmp 0x41849c
mov dword [esp], edi
call sub.msvcrt.dll_strlen
add ebx, eax
mov eax, dword [ebp + 0xc]
mov dword [eax], 2
jmp 0x4181c8
mov dword [esp + 4], ebx
mov eax, 2
mov dword [esp + 8], eax
mov dword [esp], 0x50b4cb
call sub.msvcrt.dll__strnicmp
test eax, eax
jne case.0x41775b.38
mov dword [ebp - 0x24], 1
add ebx, 2
jmp case.0x41775b.90
lea eax, [edi + edi*4]
lea eax, [eax + eax*4]
lea edi, [eax*4]
jmp 0x4180b5
mov edx, dword [ebp - 0x100]
mov dword [esp], edx
call sub.msvcrt.dll_strlen
jmp 0x4184af
mov al, cl
sub al, 0x30
cmp al, 9
jbe 0x418537
jmp case.0x41775b.38
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x17
ja 0x418552
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x418552
cmp cl, 0x39
jg 0x418552
dec dword [ebp - 0x94]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x94]
test eax, eax
jg 0x418520
cmp edi, 0x17
ja case.0x41775b.38
mov eax, dword [ebp + 8]
mov dword [eax + 8], edi
jmp 0x417f91
mov al, cl
sub al, 0x30
cmp al, 9
jbe 0x41858a
jmp case.0x41775b.38
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x1f
ja 0x4185a5
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x4185a5
cmp cl, 0x39
jg 0x4185a5
dec dword [ebp - 0x90]
lea edx, [edi + edi*4]
movsx eax, cl
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov edx, dword [ebp - 0x90]
test edx, edx
jg 0x418573
lea eax, [edi - 1]
cmp eax, 0x1e
ja case.0x41775b.38
mov edx, dword [ebp + 8]
mov dword [edx + 0xc], edi
jmp 0x418001
mov dword [esp], edi
call sub.msvcrt.dll_strlen
add ebx, eax
mov eax, dword [ebp + 0xc]
mov dword [eax], 2
jmp 0x417932
mov al, cl
sub al, 0x30
cmp al, 9
jbe 0x4185f8
jmp case.0x41775b.38
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x3d
ja 0x418613
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x418613
cmp cl, 0x39
jg 0x418613
dec dword [ebp - 0xa4]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0xa4]
test eax, eax
jg 0x4185e1
cmp edi, 0x3d
ja case.0x41775b.38
mov edx, dword [ebp + 8]
mov dword [edx], edi
jmp case.0x41775b.90
mov edx, dword [ebp - 0x104]
mov dword [esp], edx
call sub.msvcrt.dll_strlen
jmp 0x4185c4
mov al, cl
sub al, 0x30
cmp al, 9
jbe 0x41865a
jmp case.0x41775b.38
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x63
ja 0x418675
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x418675
cmp cl, 0x39
jg 0x418675
dec dword [ebp - 0xb8]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0xb8]
test eax, eax
jg 0x418643
cmp edi, 0x63
ja case.0x41775b.38
cmp edi, 0x44
mov eax, edi
ja 0x418688
add eax, 0x64
mov edx, dword [ebp + 8]
mov dword [edx + 0x14], eax
jmp 0x41797b
mov al, cl
sub al, 0x30
cmp al, 9
jbe 0x4186c3
jmp case.0x41775b.38
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0xc
ja 0x417efe
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417efe
cmp cl, 0x39
jg 0x417efe
dec dword [ebp - 0x98]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x98]
test eax, eax
jg 0x4186a0
jmp 0x417efe
mov al, cl
sub al, 0x30
cmp al, 9
jbe 0x418713
jmp case.0x41775b.38
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0xc
ja 0x418112
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x418112
cmp cl, 0x39
jg 0x418112
dec dword [ebp - 0x9c]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0x9c]
test eax, eax
jg 0x4186f0
jmp 0x418112
mov al, cl
sub al, 0x30
cmp al, 9
jbe 0x418763
jmp case.0x41775b.38
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x3b
ja 0x417b36
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417b36
cmp cl, 0x39
jg 0x417b36
dec dword [ebp - 0xa0]
lea edx, [edi + edi*4]
movsx eax, cl
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov edx, dword [ebp - 0xa0]
test edx, edx
jg 0x418740
jmp 0x417b36
mov al, cl
sub al, 0x30
cmp al, 9
jbe 0x4187b3
jmp case.0x41775b.38
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 6
ja 0x417cff
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417cff
cmp cl, 0x39
jg 0x417cff
dec dword [ebp - 0xb4]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0xb4]
test eax, eax
jg 0x418790
jmp 0x417cff
mov al, cl
sub al, 0x30
cmp al, 9
jbe 0x418803
jmp case.0x41775b.38
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x35
ja 0x417aa3
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417aa3
cmp cl, 0x39
jg 0x417aa3
dec dword [ebp - 0xac]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0xac]
test eax, eax
jg 0x4187e0
jmp 0x417aa3
mov al, cl
sub al, 0x30
cmp al, 9
jbe 0x418853
jmp case.0x41775b.38
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x35
ja 0x417a43
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x417a43
cmp cl, 0x39
jg 0x417a43
dec dword [ebp - 0xb0]
lea edx, [edi + edi*4]
movsx eax, cl
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov edx, dword [ebp - 0xb0]
test edx, edx
jg 0x418830
jmp 0x417a43
mov al, cl
sub al, 0x30
cmp al, 9
jbe 0x4188a3
jmp case.0x41775b.38
lea eax, [edi + edi*4]
add eax, eax
cmp eax, 0x35
ja 0x4179d9
movzx ecx, byte [ebx]
cmp cl, 0x2f
jle 0x4179d9
cmp cl, 0x39
jg 0x4179d9
dec dword [ebp - 0xa8]
movsx eax, cl
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
inc ebx
mov eax, dword [ebp - 0xa8]
test eax, eax
jg 0x418880
jmp 0x4179d9