Function at 0x58f410
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x14
xor eax, eax
push ebx
mov ebx, dword [esp + 0x20]
push ebp
mov dword [esp + 0x14], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
mov al, byte [ebx]
push esi
mov esi, dword [esp + 0x24]
mov ebp, ecx
push edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], 0xffffffff
test al, al
je 0x590131
mov edi, dword [esp + 0x30]
lea esp, [esp]
movsx eax, al
push eax
call fcn.00622c71
add esp, 4
test eax, eax
je 0x58f488
movsx ecx, byte [esi]
push ecx
call fcn.00622c71
add esp, 4
test eax, eax
je 0x58f482
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.00622c71
add esp, 4
test eax, eax
jne 0x58f470
inc ebx
jmp case.0x58f4bd.90
mov al, byte [ebx]
inc ebx
cmp al, 0x25
je 0x58f4a6
mov cl, byte [esi]
inc esi
cmp al, cl
je case.0x58f4bd.90
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
movsx eax, byte [ebx]
inc ebx
sub eax, 0x25
mov dword [esp + 0x2c], ebx
cmp eax, 0x54
ja case.0x58f4bd.38
movzx edx, byte [eax + 0x5901bc]
jmp dword [edx*4 + 0x590140]
mov al, byte [ebx]
cmp al, 0x63
je 0x58f4a6
cmp al, 0x43
je 0x58f4a6
cmp al, 0x79
je 0x58f4a6
cmp al, 0x59
je 0x58f4a6
cmp al, 0x78
je 0x58f4a6
cmp al, 0x58
je 0x58f4a6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
mov al, byte [esi]
inc esi
cmp al, 0x25
jne case.0x58f4bd.38
jmp case.0x58f4bd.90
xor ebp, ebp
mov ebx, 0x6b21d8
mov edi, 0x6b2190
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f507
sub eax, edx
push eax
push esi
push edi
call fcn.006282cf
add esp, 0xc
test eax, eax
je 0x58f54d
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f524
sub eax, edx
push eax
push esi
push ebx
call fcn.006282cf
add esp, 0xc
test eax, eax
je 0x58f569
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6b21d6
jl 0x58f502
jmp 0x58f57e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6b2190]
lea edx, [eax + 1]
jmp 0x58f560
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f560
jmp 0x58f57a
lea eax, [ebp*4 + 0x6b21d8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f573
sub eax, edx
add esi, eax
cmp ebp, 7
je case.0x58f4bd.38
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [ecx + 0x18], ebp
mov ebp, dword [esp + 0x18]
mov edi, ecx
jmp case.0x58f4bd.90
xor ebp, ebp
mov ebx, 0x6b2270
mov edi, 0x6b21f8
lea esp, [esp]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f5b5
sub eax, edx
push eax
push esi
push edi
call fcn.006282cf
add esp, 0xc
test eax, eax
je 0x58f5fb
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f5d2
sub eax, edx
push eax
push esi
push ebx
call fcn.006282cf
add esp, 0xc
test eax, eax
je 0x58f619
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6b2270
jl 0x58f5b0
jmp 0x58f62e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6b21f8]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f610
jmp 0x58f62a
lea eax, [ebp*4 + 0x6b2270]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f623
sub eax, edx
add esi, eax
cmp ebp, 0xc
je case.0x58f4bd.38
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [edx + 0x10], ebp
mov ebp, dword [esp + 0x18]
mov edi, edx
jmp case.0x58f4bd.90
push edi
push str._a__b__e__H:_M:_S__Y
push esi
mov ecx, ebp
call fcn.0058f410
mov esi, eax
test esi, esi
je case.0x58f4bd.38
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f67c
inc esi
cmp byte [esi], 0x20
je 0x58f676
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f6b6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58f6b6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f6b6
cmp cl, 0x39
jle 0x58f690
cmp eax, 0x63
ja case.0x58f4bd.38
mov dword [esp + 0x20], eax
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f6da
inc esi
cmp byte [esi], 0x20
je 0x58f6d4
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
mov edi, edi
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f716
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x58f716
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f716
cmp cl, 0x39
jle 0x58f6f0
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58f4bd.38
mov dword [edi + 0xc], eax
jmp case.0x58f4bd.90
push edi
push str._Y__m__d
jmp 0x58f653
push edi
push str._m__d__y
jmp 0x58f653
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f756
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x58f750
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fe06
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x58fe06
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fe06
cmp cl, 0x39
jle 0x58f770
jmp 0x58fe06
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f7b9
inc esi
cmp byte [esi], 0x20
je 0x58f7b3
mov al, byte [esi]
cmp al, 0x30
jl case.0x58f4bd.38
cmp al, 0x39
jg case.0x58f4bd.38
jmp 0x58f7d0
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x58f7f4
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 0xc
ja 0x58f7f4
mov al, byte [esi]
cmp al, 0x30
jl 0x58f7f4
cmp al, 0x39
jle 0x58f7d0
lea edx, [ecx - 1]
cmp edx, 0xb
ja case.0x58f4bd.38
mov eax, 0xaaaaaaab
mul ecx
shr edx, 3
lea eax, [edx + edx*2]
add eax, eax
add eax, eax
sub ecx, eax
mov dword [edi + 8], ecx
mov dword [esp + 0x10], 1
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 3
jne 0x58f836
nop
inc esi
cmp byte [esi], 0x20
je 0x58f830
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f879
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x16e
ja 0x58f879
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f879
cmp cl, 0x39
jle 0x58f850
lea edx, [eax - 1]
cmp edx, 0x16d
ja case.0x58f4bd.38
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f8a6
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x58f8a0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fee6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58fee6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fee6
cmp cl, 0x39
jle 0x58f8c0
jmp 0x58fee6
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f909
inc esi
cmp byte [esi], 0x20
je 0x58f903
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ecx, [ecx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f946
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x58f946
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f946
cmp cl, 0x39
jle 0x58f920
cmp eax, 0x3b
ja case.0x58f4bd.38
mov dword [edi + 4], eax
jmp case.0x58f4bd.90
movsx edx, byte [esi]
push edx
call fcn.00622c71
add esp, 4
test eax, eax
je case.0x58f4bd.90
jmp 0x58f970
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.00622c71
add esp, 4
test eax, eax
jne 0x58f970
jmp case.0x58f4bd.90
push 2
push esi
push 0x6b22cc
call fcn.006282cf
add esp, 0xc
test eax, eax
jne 0x58f9a3
add esi, 2
jmp case.0x58f4bd.90
push 2
push esi
push 0x6b22c8
call fcn.006282cf
add esp, 0xc
test eax, eax
jne case.0x58f4bd.38
add esi, 2
mov dword [esp + 0x1c], 1
jmp case.0x58f4bd.90
push edi
push str._I:_M:_S__p
jmp 0x58f653
push edi
push str._H:_M
jmp 0x58f653
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x58f4bd.38
cmp al, 0x39
jg case.0x58f4bd.38
inc esi
movsx edx, al
mov al, byte [esi]
cmp al, 0x30
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2 - 0x30]
jl 0x58fa0a
cmp al, 0x39
jle 0x58f9f5
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.0058f3e0
add esp, 8
test eax, eax
je case.0x58f4bd.38
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fa3b
inc esi
cmp byte [esi], 0x20
je 0x58fa35
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
nop
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fa76
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x58fa76
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fa76
cmp cl, 0x39
jle 0x58fa50
cmp eax, 0x3d
ja case.0x58f4bd.38
mov dword [edi], eax
jmp case.0x58f4bd.90
push edi
push str._H:_M:_S
jmp 0x58f653
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 1
jne 0x58faa6
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x58faa0
mov al, byte [esi]
cmp al, 0x30
jl case.0x58f4bd.38
cmp al, 0x39
jg case.0x58f4bd.38
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x58fadc
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 7
ja 0x58fadc
mov al, byte [esi]
cmp al, 0x30
jl 0x58fadc
cmp al, 0x39
jle 0x58fab8
lea edx, [ecx - 1]
cmp edx, 6
ja case.0x58f4bd.38
mov eax, 0x24924925
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 2
lea edx, [eax*8]
sub edx, eax
sub ecx, edx
mov dword [edi + 0x18], ecx
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fb26
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x58fb20
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fb66
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58fb66
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fb66
cmp cl, 0x39
jle 0x58fb40
cmp eax, 0x63
ja case.0x58f4bd.38
jmp case.0x58f4bd.90
mov al, byte [esi]
cmp al, 0x30
jl case.0x58f4bd.38
cmp al, 0x39
jg case.0x58f4bd.38
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x58f4bd.90
cmp al, 0x39
jle 0x58fb86
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fbad
inc esi
cmp byte [esi], 0x20
je 0x58fba7
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fbe7
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x58fbe7
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fbe7
cmp cl, 0x39
jle 0x58fbc1
cmp eax, 0x35
ja case.0x58f4bd.38
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x58fc07
inc esi
cmp byte [esi], 0x20
je 0x58fc01
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
jmp 0x58fc20
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fc46
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x58fc46
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fc46
cmp cl, 0x39
jle 0x58fc20
cmp eax, 6
ja case.0x58f4bd.38
mov dword [edi + 0x18], eax
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fc69
inc esi
cmp byte [esi], 0x20
je 0x58fc63
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ecx, [ecx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fca6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58fca6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fca6
cmp cl, 0x39
jle 0x58fc80
cmp eax, 0x63
ja case.0x58f4bd.38
cmp eax, 0x45
jae 0x58fcb7
add eax, 0x64
mov dword [esp + 0x14], 1
jmp 0x5900d7
xor eax, eax
cmp byte [esi], 0x20
mov edx, 4
jne 0x58fcd6
inc esi
cmp byte [esi], 0x20
je 0x58fcd0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fd19
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x270f
ja 0x58fd19
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fd19
cmp cl, 0x39
jle 0x58fcf0
cmp eax, 0x270f
ja case.0x58f4bd.38
add eax, 0xfffff894
mov dword [esp + 0x14], 0
jmp 0x5900d7
movsx eax, byte [ebx]
sub eax, 0x48
inc ebx
cmp eax, 0x31
ja case.0x58f4bd.38
movzx edx, byte [eax + 0x59023c]
jmp dword [edx*4 + 0x590214]
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fd66
inc esi
cmp byte [esi], 0x20
je 0x58fd60
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fda6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x58fda6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fda6
cmp cl, 0x39
jle 0x58fd80
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58f4bd.38
mov dword [edi + 0xc], eax
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fdcc
inc esi
cmp byte [esi], 0x20
je 0x58fdc6
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fe06
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x58fe06
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fe06
cmp cl, 0x39
jle 0x58fde0
cmp eax, 0x17
ja case.0x58f4bd.38
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fe36
jmp 0x58fe30
inc esi
cmp byte [esi], 0x20
je 0x58fe30
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fe76
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58fe76
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fe76
cmp cl, 0x39
jle 0x58fe50
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58f4bd.38
dec eax
mov dword [edi + 8], eax
mov dword [esp + 0x10], 1
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fea6
nop
inc esi
cmp byte [esi], 0x20
je 0x58fea0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58fee6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58fee6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fee6
cmp cl, 0x39
jle 0x58fec0
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58f4bd.38
dec eax
mov dword [edi + 0x10], eax
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58ff0d
inc esi
cmp byte [esi], 0x20
je 0x58ff07
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58ff47
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x58ff47
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58ff47
cmp cl, 0x39
jle 0x58ff21
cmp eax, 0x3b
ja case.0x58f4bd.38
mov dword [edi + 4], eax
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58ff6a
inc esi
cmp byte [esi], 0x20
je 0x58ff64
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
mov edi, edi
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58ffa6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x58ffa6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58ffa6
cmp cl, 0x39
jle 0x58ff80
cmp eax, 0x3d
ja case.0x58f4bd.38
mov dword [edi], eax
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58ffc8
inc esi
cmp byte [esi], 0x20
je 0x58ffc2
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea esp, [esp]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x590006
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x590006
mov cl, byte [esi]
cmp cl, 0x30
jl 0x590006
cmp cl, 0x39
jle 0x58ffe0
cmp eax, 0x35
ja case.0x58f4bd.38
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x590026
inc esi
cmp byte [esi], 0x20
je 0x590020
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x590066
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x590066
mov cl, byte [esi]
cmp cl, 0x30
jl 0x590066
cmp cl, 0x39
jle 0x590040
cmp eax, 6
ja case.0x58f4bd.38
mov dword [edi + 0x18], eax
jmp case.0x58f4bd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x590086
inc esi
cmp byte [esi], 0x20
je 0x590080
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58f4bd.38
cmp cl, 0x39
jg case.0x58f4bd.38
lea ebx, [ebx]
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x5900c6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x5900c6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5900c6
cmp cl, 0x39
jle 0x5900a0
cmp eax, 0x63
ja case.0x58f4bd.38
cmp eax, 0x45
jae 0x5900d7
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebx]
test al, al
jne 0x58f450
cmp dword [esp + 0x10], 0
je 0x5900f6
cmp dword [esp + 0x1c], 0
je 0x5900f6
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x590131
cmp dword [esp + 0x14], 0
je 0x590128
lea ecx, [eax - 0x13]
mov eax, dword [edi + 0x14]
imul ecx, ecx, 0x64
cdq
mov ebx, 0x64
idiv ebx
mov eax, esi
add ecx, edx
mov dword [edi + 0x14], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc
add eax, 0xffffffed
imul eax, eax, 0x64
mov dword [edi + 0x14], eax
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0xc