Function at 0x5851b0
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 0x585ed1
mov edi, dword [esp + 0x30]
lea esp, [esp]
movsx eax, al
push eax
call fcn.006178b1
add esp, 4
test eax, eax
je 0x585228
movsx ecx, byte [esi]
push ecx
call fcn.006178b1
add esp, 4
test eax, eax
je 0x585222
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.006178b1
add esp, 4
test eax, eax
jne 0x585210
inc ebx
jmp case.0x58525d.90
mov al, byte [ebx]
inc ebx
cmp al, 0x25
je 0x585246
mov cl, byte [esi]
inc esi
cmp al, cl
je case.0x58525d.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.0x58525d.38
movzx edx, byte [eax + 0x585f5c]
jmp dword [edx*4 + 0x585ee0]
mov al, byte [ebx]
cmp al, 0x63
je 0x585246
cmp al, 0x43
je 0x585246
cmp al, 0x79
je 0x585246
cmp al, 0x59
je 0x585246
cmp al, 0x78
je 0x585246
cmp al, 0x58
je 0x585246
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.0x58525d.38
jmp case.0x58525d.90
xor ebp, ebp
mov ebx, 0x6a6920
mov edi, 0x6a68d8
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5852a7
sub eax, edx
push eax
push esi
push edi
call fcn.0061cf0f
add esp, 0xc
test eax, eax
je 0x5852ed
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5852c4
sub eax, edx
push eax
push esi
push ebx
call fcn.0061cf0f
add esp, 0xc
test eax, eax
je 0x585309
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6a691e
jl 0x5852a2
jmp 0x58531e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6a68d8]
lea edx, [eax + 1]
jmp 0x585300
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x585300
jmp 0x58531a
lea eax, [ebp*4 + 0x6a6920]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x585313
sub eax, edx
add esi, eax
cmp ebp, 7
je case.0x58525d.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.0x58525d.90
xor ebp, ebp
mov ebx, 0x6a69b8
mov edi, 0x6a6940
lea esp, [esp]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x585355
sub eax, edx
push eax
push esi
push edi
call fcn.0061cf0f
add esp, 0xc
test eax, eax
je 0x58539b
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x585372
sub eax, edx
push eax
push esi
push ebx
call fcn.0061cf0f
add esp, 0xc
test eax, eax
je 0x5853b9
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6a69b8
jl 0x585350
jmp 0x5853ce
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6a6940]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5853b0
jmp 0x5853ca
lea eax, [ebp*4 + 0x6a69b8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5853c3
sub eax, edx
add esi, eax
cmp ebp, 0xc
je case.0x58525d.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.0x58525d.90
push edi
push str._a__b__e__H:_M:_S__Y
push esi
mov ecx, ebp
call fcn.005851b0
mov esi, eax
test esi, esi
je case.0x58525d.38
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58541c
inc esi
cmp byte [esi], 0x20
je 0x585416
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x585456
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x585456
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585456
cmp cl, 0x39
jle 0x585430
cmp eax, 0x63
ja case.0x58525d.38
mov dword [esp + 0x20], eax
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58547a
inc esi
cmp byte [esi], 0x20
je 0x585474
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x5854b6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x5854b6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5854b6
cmp cl, 0x39
jle 0x585490
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58525d.38
mov dword [edi + 0xc], eax
jmp case.0x58525d.90
push edi
push str._Y__m__d
jmp 0x5853f3
push edi
push str._m__d__y
jmp 0x5853f3
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5854f6
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x5854f0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585ba6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x585ba6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585ba6
cmp cl, 0x39
jle 0x585510
jmp 0x585ba6
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 2
jne 0x585559
inc esi
cmp byte [esi], 0x20
je 0x585553
mov al, byte [esi]
cmp al, 0x30
jl case.0x58525d.38
cmp al, 0x39
jg case.0x58525d.38
jmp 0x585570
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x585594
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 0xc
ja 0x585594
mov al, byte [esi]
cmp al, 0x30
jl 0x585594
cmp al, 0x39
jle 0x585570
lea edx, [ecx - 1]
cmp edx, 0xb
ja case.0x58525d.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.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 3
jne 0x5855d6
nop
inc esi
cmp byte [esi], 0x20
je 0x5855d0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585619
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x16e
ja 0x585619
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585619
cmp cl, 0x39
jle 0x5855f0
lea edx, [eax - 1]
cmp edx, 0x16d
ja case.0x58525d.38
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x585646
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x585640
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585c86
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x585c86
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585c86
cmp cl, 0x39
jle 0x585660
jmp 0x585c86
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5856a9
inc esi
cmp byte [esi], 0x20
je 0x5856a3
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x5856e6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x5856e6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5856e6
cmp cl, 0x39
jle 0x5856c0
cmp eax, 0x3b
ja case.0x58525d.38
mov dword [edi + 4], eax
jmp case.0x58525d.90
movsx edx, byte [esi]
push edx
call fcn.006178b1
add esp, 4
test eax, eax
je case.0x58525d.90
jmp 0x585710
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.006178b1
add esp, 4
test eax, eax
jne 0x585710
jmp case.0x58525d.90
push 2
push esi
push 0x6a6a14
call fcn.0061cf0f
add esp, 0xc
test eax, eax
jne 0x585743
add esi, 2
jmp case.0x58525d.90
push 2
push esi
push 0x6a6a10
call fcn.0061cf0f
add esp, 0xc
test eax, eax
jne case.0x58525d.38
add esi, 2
mov dword [esp + 0x1c], 1
jmp case.0x58525d.90
push edi
push str._I:_M:_S__p
jmp 0x5853f3
push edi
push str._H:_M
jmp 0x5853f3
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x58525d.38
cmp al, 0x39
jg case.0x58525d.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 0x5857aa
cmp al, 0x39
jle 0x585795
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.00585180
add esp, 8
test eax, eax
je case.0x58525d.38
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5857db
inc esi
cmp byte [esi], 0x20
je 0x5857d5
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.38
nop
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x585816
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x585816
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585816
cmp cl, 0x39
jle 0x5857f0
cmp eax, 0x3d
ja case.0x58525d.38
mov dword [edi], eax
jmp case.0x58525d.90
push edi
push str._H:_M:_S
jmp 0x5853f3
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 1
jne 0x585846
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x585840
mov al, byte [esi]
cmp al, 0x30
jl case.0x58525d.38
cmp al, 0x39
jg case.0x58525d.38
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x58587c
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 7
ja 0x58587c
mov al, byte [esi]
cmp al, 0x30
jl 0x58587c
cmp al, 0x39
jle 0x585858
lea edx, [ecx - 1]
cmp edx, 6
ja case.0x58525d.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.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5858c6
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x5858c0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585906
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x585906
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585906
cmp cl, 0x39
jle 0x5858e0
cmp eax, 0x63
ja case.0x58525d.38
jmp case.0x58525d.90
mov al, byte [esi]
cmp al, 0x30
jl case.0x58525d.38
cmp al, 0x39
jg case.0x58525d.38
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x58525d.90
cmp al, 0x39
jle 0x585926
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58594d
inc esi
cmp byte [esi], 0x20
je 0x585947
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x585987
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x585987
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585987
cmp cl, 0x39
jle 0x585961
cmp eax, 0x35
ja case.0x58525d.38
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x5859a7
inc esi
cmp byte [esi], 0x20
je 0x5859a1
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.38
jmp 0x5859c0
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x5859e6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x5859e6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5859e6
cmp cl, 0x39
jle 0x5859c0
cmp eax, 6
ja case.0x58525d.38
mov dword [edi + 0x18], eax
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x585a09
inc esi
cmp byte [esi], 0x20
je 0x585a03
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585a46
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x585a46
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585a46
cmp cl, 0x39
jle 0x585a20
cmp eax, 0x63
ja case.0x58525d.38
cmp eax, 0x45
jae 0x585a57
add eax, 0x64
mov dword [esp + 0x14], 1
jmp 0x585e77
xor eax, eax
cmp byte [esi], 0x20
mov edx, 4
jne 0x585a76
inc esi
cmp byte [esi], 0x20
je 0x585a70
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585ab9
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x270f
ja 0x585ab9
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585ab9
cmp cl, 0x39
jle 0x585a90
cmp eax, 0x270f
ja case.0x58525d.38
add eax, 0xfffff894
mov dword [esp + 0x14], 0
jmp 0x585e77
movsx eax, byte [ebx]
sub eax, 0x48
inc ebx
cmp eax, 0x31
ja case.0x58525d.38
movzx edx, byte [eax + 0x585fdc]
jmp dword [edx*4 + 0x585fb4]
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x585b06
inc esi
cmp byte [esi], 0x20
je 0x585b00
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585b46
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x585b46
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585b46
cmp cl, 0x39
jle 0x585b20
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58525d.38
mov dword [edi + 0xc], eax
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x585b6c
inc esi
cmp byte [esi], 0x20
je 0x585b66
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x585ba6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x585ba6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585ba6
cmp cl, 0x39
jle 0x585b80
cmp eax, 0x17
ja case.0x58525d.38
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x585bd6
jmp 0x585bd0
inc esi
cmp byte [esi], 0x20
je 0x585bd0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585c16
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x585c16
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585c16
cmp cl, 0x39
jle 0x585bf0
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58525d.38
dec eax
mov dword [edi + 8], eax
mov dword [esp + 0x10], 1
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x585c46
nop
inc esi
cmp byte [esi], 0x20
je 0x585c40
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585c86
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x585c86
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585c86
cmp cl, 0x39
jle 0x585c60
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58525d.38
dec eax
mov dword [edi + 0x10], eax
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x585cad
inc esi
cmp byte [esi], 0x20
je 0x585ca7
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x585ce7
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x585ce7
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585ce7
cmp cl, 0x39
jle 0x585cc1
cmp eax, 0x3b
ja case.0x58525d.38
mov dword [edi + 4], eax
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x585d0a
inc esi
cmp byte [esi], 0x20
je 0x585d04
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585d46
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x585d46
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585d46
cmp cl, 0x39
jle 0x585d20
cmp eax, 0x3d
ja case.0x58525d.38
mov dword [edi], eax
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x585d68
inc esi
cmp byte [esi], 0x20
je 0x585d62
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585da6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x585da6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585da6
cmp cl, 0x39
jle 0x585d80
cmp eax, 0x35
ja case.0x58525d.38
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x585dc6
inc esi
cmp byte [esi], 0x20
je 0x585dc0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585e06
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x585e06
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585e06
cmp cl, 0x39
jle 0x585de0
cmp eax, 6
ja case.0x58525d.38
mov dword [edi + 0x18], eax
jmp case.0x58525d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x585e26
inc esi
cmp byte [esi], 0x20
je 0x585e20
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58525d.38
cmp cl, 0x39
jg case.0x58525d.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 0x585e66
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x585e66
mov cl, byte [esi]
cmp cl, 0x30
jl 0x585e66
cmp cl, 0x39
jle 0x585e40
cmp eax, 0x63
ja case.0x58525d.38
cmp eax, 0x45
jae 0x585e77
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebx]
test al, al
jne 0x5851f0
cmp dword [esp + 0x10], 0
je 0x585e96
cmp dword [esp + 0x1c], 0
je 0x585e96
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x585ed1
cmp dword [esp + 0x14], 0
je 0x585ec8
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