Function at 0x593920
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x14
push ebx
push ebp
mov ebp, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 8], eax
mov dword [esp + 0x10], eax
mov al, byte [ebp]
mov ebx, ecx
push esi
test al, al
push edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], 0xffffffff
je 0x5946fe
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
movsx eax, al
push eax
call fcn.0060a25c
add esp, 4
test eax, eax
je 0x593992
movsx ecx, byte [esi]
push ecx
call fcn.0060a25c
add esp, 4
test eax, eax
je 0x59398c
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.0060a25c
add esp, 4
test eax, eax
jne 0x59397a
inc ebp
jmp case.0x5939c8.54
mov al, byte [ebp]
cmp al, 0x25
je 0x5939aa
mov cl, byte [esi]
inc esi
inc ebp
cmp al, cl
jne case.0x594309.81
jmp case.0x5939c8.54
inc ebp
movsx eax, byte [ebp]
sub eax, 0x25
inc ebp
cmp eax, 0x54
mov dword [esp + 0x2c], ebp
ja case.0x594309.81
xor edx, edx
mov dl, byte [eax + 0x59478c]
jmp dword [edx*4 + 0x594710]
mov al, byte [ebp]
cmp al, 0x63
je 0x5939ab
cmp al, 0x43
je 0x5939ab
cmp al, 0x79
je 0x5939ab
cmp al, 0x59
je 0x5939ab
cmp al, 0x78
je 0x5939ab
cmp al, 0x58
jne case.0x594309.81
jmp 0x5939ab
mov al, byte [esi]
inc esi
cmp al, 0x25
jne case.0x594309.81
jmp case.0x5939c8.54
mov dword [esp + 0x28], 0
mov ebp, 0x663fd8
mov ebx, 0x663f90
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push ebx
call fcn.0060d550
add esp, 0xc
test eax, eax
je 0x593a61
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push ebp
call fcn.0060d550
add esp, 0xc
test eax, eax
je 0x593a71
mov edi, dword [esp + 0x28]
add ebx, 0xa
inc edi
add ebp, 4
cmp ebx, 0x663fd6
mov dword [esp + 0x28], edi
jge 0x593a88
jmp 0x593a12
mov eax, dword [esp + 0x28]
lea ecx, [eax + eax*4]
lea edi, [ecx*2 + 0x663f90]
jmp 0x593a7c
mov edx, dword [esp + 0x28]
lea edi, [edx*4 + 0x663fd8]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
mov eax, dword [esp + 0x28]
cmp eax, 7
je case.0x594309.81
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x2c]
mov edi, ecx
mov dword [ecx + 0x18], eax
jmp case.0x5939c8.54
mov dword [esp + 0x28], 0
mov ebp, 0x66406c
mov ebx, 0x663ff4
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push ebx
call fcn.0060d550
add esp, 0xc
test eax, eax
je 0x593b0c
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push ebp
call fcn.0060d550
add esp, 0xc
test eax, eax
je 0x593b1c
mov edi, dword [esp + 0x28]
add ebx, 0xa
inc edi
add ebp, 4
cmp ebx, 0x66406c
mov dword [esp + 0x28], edi
jge 0x593b33
jmp 0x593abd
mov eax, dword [esp + 0x28]
lea edx, [eax + eax*4]
lea edi, [edx*2 + 0x663ff4]
jmp 0x593b27
mov eax, dword [esp + 0x28]
lea edi, [eax*4 + 0x66406c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
mov eax, dword [esp + 0x28]
cmp eax, 0xc
je case.0x594309.81
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x2c]
mov edi, ecx
mov dword [ecx + 0x10], eax
jmp case.0x5939c8.54
mov al, byte [str._a__b__e__H:_M:_S__Y]
test al, al
je case.0x594309.81
push edi
push str._a__b__e__H:_M:_S__Y
jmp 0x594038
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x593b85
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x593b7c
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x593bbf
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x593bbf
mov cl, byte [esi]
cmp cl, 0x30
jl 0x593bbf
cmp cl, 0x39
jle 0x593b99
cmp eax, 0x63
ja case.0x594309.81
mov dword [esp + 0x20], eax
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x593be8
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x593bdf
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x593c22
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x1f
ja 0x593c22
mov cl, byte [esi]
cmp cl, 0x30
jl 0x593c22
cmp cl, 0x39
jle 0x593bfc
cmp eax, 1
jb case.0x594309.81
cmp eax, 0x1f
ja case.0x594309.81
mov dword [edi + 0xc], eax
jmp case.0x5939c8.54
mov al, byte [str._Y__m__d]
test al, al
je case.0x594309.81
push edi
push str._Y__m__d
jmp 0x594038
mov al, byte [str._m__d__y]
test al, al
je case.0x594309.81
push edi
push str._m__d__y
jmp 0x594038
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x593c83
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x593c7a
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x593cbd
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x17
ja 0x593cbd
mov cl, byte [esi]
cmp cl, 0x30
jl 0x593cbd
cmp cl, 0x39
jle 0x593c97
cmp eax, 0x17
ja case.0x594309.81
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x593ced
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x593ce4
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x593d27
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x593d27
mov cl, byte [esi]
cmp cl, 0x30
jl 0x593d27
cmp cl, 0x39
jle 0x593d01
cmp eax, 1
jb case.0x594309.81
cmp eax, 0xc
ja case.0x594309.81
xor edx, edx
mov ecx, 0xc
div ecx
mov dword [esp + 0x10], 1
mov dword [edi + 8], edx
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 3
jne 0x593d69
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x593d60
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x593da6
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x16e
ja 0x593da6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x593da6
cmp cl, 0x39
jle 0x593d7d
cmp eax, 1
jb case.0x594309.81
cmp eax, 0x16e
ja case.0x594309.81
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x593dda
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x593dd1
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x593e14
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x593e14
mov cl, byte [esi]
cmp cl, 0x30
jl 0x593e14
cmp cl, 0x39
jle 0x593dee
cmp eax, 1
jb case.0x594309.81
cmp eax, 0xc
ja case.0x594309.81
dec eax
mov dword [edi + 0x10], eax
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x593e46
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x593e3d
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x593e80
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3b
ja 0x593e80
mov cl, byte [esi]
cmp cl, 0x30
jl 0x593e80
cmp cl, 0x39
jle 0x593e5a
cmp eax, 0x3b
ja case.0x594309.81
mov dword [edi + 4], eax
jmp case.0x5939c8.54
movsx edx, byte [esi]
push edx
call fcn.0060a25c
add esp, 4
test eax, eax
je case.0x5939c8.54
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.0060a25c
add esp, 4
test eax, eax
jne 0x593ea5
jmp case.0x5939c8.54
mov edi, 0x6ecbe4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x6ecbe4
call fcn.0060d550
add esp, 0xc
test eax, eax
jne 0x593efe
mov edi, 0x6ecbe4
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
not ecx
dec ecx
add esi, ecx
jmp case.0x5939c8.54
mov edi, 0x6ecbe0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x6ecbe0
call fcn.0060d550
add esp, 0xc
test eax, eax
jne case.0x594309.81
mov edi, 0x6ecbe0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x1c], 1
not ecx
dec ecx
add esi, ecx
jmp case.0x5939c8.54
mov al, byte [str._I:_M:_S__p]
test al, al
je case.0x594309.81
push edi
push str._I:_M:_S__p
jmp 0x594038
mov al, byte [str._H:_M]
test al, al
je case.0x594309.81
push edi
push str._H:_M
jmp 0x594038
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x594309.81
cmp al, 0x39
jg case.0x594309.81
inc esi
lea ecx, [ecx + ecx*4]
movsx edx, al
mov al, byte [esi]
cmp al, 0x30
lea ecx, [edx + ecx*2 - 0x30]
jl 0x593fa5
cmp al, 0x39
jle 0x593f90
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.005938f0
add esp, 8
test eax, eax
je case.0x594309.81
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x593fdb
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x593fd2
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x594015
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3d
ja 0x594015
mov cl, byte [esi]
cmp cl, 0x30
jl 0x594015
cmp cl, 0x39
jle 0x593fef
cmp eax, 0x3d
ja case.0x594309.81
mov dword [edi], eax
jmp case.0x5939c8.54
mov al, byte [str._H:_M:_S]
test al, al
je case.0x594309.81
push edi
push str._H:_M:_S
push esi
mov ecx, ebx
call fcn.00593920
mov esi, eax
test esi, esi
je case.0x594309.81
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x594066
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x59405d
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5940a0
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 7
ja 0x5940a0
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5940a0
cmp cl, 0x39
jle 0x59407a
cmp eax, 1
jb case.0x594309.81
cmp eax, 7
ja case.0x594309.81
xor edx, edx
mov ecx, 7
div ecx
mov dword [edi + 0x18], edx
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5940da
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5940d1
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x594114
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x594114
mov cl, byte [esi]
cmp cl, 0x30
jl 0x594114
cmp cl, 0x39
jle 0x5940ee
cmp eax, 0x63
ja case.0x594309.81
jmp case.0x5939c8.54
mov al, byte [esi]
cmp al, 0x30
jl case.0x594309.81
cmp al, 0x39
jg case.0x594309.81
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x5939c8.54
cmp al, 0x39
jle 0x594134
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x594160
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x594157
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x59419a
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x35
ja 0x59419a
mov cl, byte [esi]
cmp cl, 0x30
jl 0x59419a
cmp cl, 0x39
jle 0x594174
cmp eax, 0x35
ja case.0x594309.81
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x5941bf
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5941b6
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5941f9
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 6
ja 0x5941f9
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5941f9
cmp cl, 0x39
jle 0x5941d3
cmp eax, 6
ja case.0x594309.81
mov dword [edi + 0x18], eax
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x594221
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x594218
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x59425b
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x59425b
mov cl, byte [esi]
cmp cl, 0x30
jl 0x59425b
cmp cl, 0x39
jle 0x594235
cmp eax, 0x63
ja case.0x594309.81
cmp eax, 0x45
jae 0x59426c
add eax, 0x64
mov dword [edi + 0x14], eax
mov dword [esp + 0x18], 1
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 4
jne 0x594293
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x59428a
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5942d0
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x270f
ja 0x5942d0
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5942d0
cmp cl, 0x39
jle 0x5942a7
cmp eax, 0x270f
ja case.0x594309.81
add eax, 0xfffff894
mov dword [esp + 0x18], 0
mov dword [edi + 0x14], eax
jmp case.0x5939c8.54
movsx eax, byte [ebp]
sub eax, 0x48
inc ebp
cmp eax, 0x31
ja case.0x594309.81
xor edx, edx
mov dl, byte [eax + 0x59480c]
jmp dword [edx*4 + 0x5947e4]
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x594327
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x59431e
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x593c22
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x1f
ja 0x593c22
mov cl, byte [esi]
cmp cl, 0x30
jl 0x593c22
cmp cl, 0x39
jle 0x59433b
jmp 0x593c22
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x594389
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x594380
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5943c3
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x17
ja 0x5943c3
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5943c3
cmp cl, 0x39
jle 0x59439d
cmp eax, 0x17
ja case.0x594309.81
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5943f3
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5943ea
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x59442d
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x59442d
mov cl, byte [esi]
cmp cl, 0x30
jl 0x59442d
cmp cl, 0x39
jle 0x594407
cmp eax, 1
jb case.0x594309.81
cmp eax, 0xc
ja case.0x594309.81
dec eax
mov dword [esp + 0x10], 1
mov dword [edi + 8], eax
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x594467
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x59445e
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x593e14
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0xc
ja 0x593e14
mov cl, byte [esi]
cmp cl, 0x30
jl 0x593e14
cmp cl, 0x39
jle 0x59447b
jmp 0x593e14
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x5944c9
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5944c0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x594503
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3b
ja 0x594503
mov cl, byte [esi]
cmp cl, 0x30
jl 0x594503
cmp cl, 0x39
jle 0x5944dd
cmp eax, 0x3b
ja case.0x594309.81
mov dword [edi + 4], eax
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x59452b
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x594522
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x594565
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x3d
ja 0x594565
mov cl, byte [esi]
cmp cl, 0x30
jl 0x594565
cmp cl, 0x39
jle 0x59453f
cmp eax, 0x3d
ja case.0x594309.81
mov dword [edi], eax
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x59458c
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x594583
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x5945c6
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x35
ja 0x5945c6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5945c6
cmp cl, 0x39
jle 0x5945a0
cmp eax, 0x35
ja case.0x594309.81
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 1
jne 0x5945eb
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x5945e2
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x594625
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 6
ja 0x594625
mov cl, byte [esi]
cmp cl, 0x30
jl 0x594625
cmp cl, 0x39
jle 0x5945ff
cmp eax, 6
ja case.0x594309.81
mov dword [edi + 0x18], eax
jmp case.0x5939c8.54
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x20
mov edx, 2
jne 0x594646
mov cl, byte [esi + 1]
inc esi
cmp cl, 0x20
je 0x59463d
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x594309.81
cmp cl, 0x39
jg case.0x594309.81
movsx ecx, cl
inc esi
lea eax, [eax + eax*4]
dec edx
test edx, edx
lea eax, [ecx + eax*2 - 0x30]
jle 0x594678
lea ecx, [eax + eax*4]
shl ecx, 1
cmp ecx, 0x63
ja 0x594678
mov cl, byte [esi]
cmp cl, 0x30
jl 0x594678
cmp cl, 0x39
jle 0x594652
cmp eax, 0x63
ja case.0x594309.81
cmp eax, 0x45
jae 0x594685
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebp]
test al, al
je 0x5946a0
jmp 0x59395a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5946b4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x5946b4
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x594702
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4 - 0x5f]
test ecx, ecx
je 0x5946e9
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x14]
cdq
mov ebx, 0x64
idiv ebx
mov eax, esi
lea edx, [edx + ecx*4]
mov dword [edi + 0x14], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc
lea eax, [eax + eax*4]
shl eax, 2
mov dword [edi + 0x14], eax
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc
mov esi, dword [esp + 0x28]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc