Function at 0x583d10
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 0x584a31
mov edi, dword [esp + 0x30]
lea esp, [esp]
movsx eax, al
push eax
call fcn.00615321
add esp, 4
test eax, eax
je 0x583d88
movsx ecx, byte [esi]
push ecx
call fcn.00615321
add esp, 4
test eax, eax
je 0x583d82
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.00615321
add esp, 4
test eax, eax
jne 0x583d70
inc ebx
jmp case.0x583dbd.90
mov al, byte [ebx]
inc ebx
cmp al, 0x25
je 0x583da6
mov cl, byte [esi]
inc esi
cmp al, cl
je case.0x583dbd.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.0x583dbd.38
movzx edx, byte [eax + 0x584abc]
jmp dword [edx*4 + 0x584a40]
mov al, byte [ebx]
cmp al, 0x63
je 0x583da6
cmp al, 0x43
je 0x583da6
cmp al, 0x79
je 0x583da6
cmp al, 0x59
je 0x583da6
cmp al, 0x78
je 0x583da6
cmp al, 0x58
je 0x583da6
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.0x583dbd.38
jmp case.0x583dbd.90
xor ebp, ebp
mov ebx, 0x6a38d0
mov edi, 0x6a3888
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x583e07
sub eax, edx
push eax
push esi
push edi
call fcn.0061a99c
add esp, 0xc
test eax, eax
je 0x583e4d
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x583e24
sub eax, edx
push eax
push esi
push ebx
call fcn.0061a99c
add esp, 0xc
test eax, eax
je 0x583e69
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6a38ce
jl 0x583e02
jmp 0x583e7e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6a3888]
lea edx, [eax + 1]
jmp 0x583e60
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x583e60
jmp 0x583e7a
lea eax, [ebp*4 + 0x6a38d0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x583e73
sub eax, edx
add esi, eax
cmp ebp, 7
je case.0x583dbd.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.0x583dbd.90
xor ebp, ebp
mov ebx, 0x6a3968
mov edi, 0x6a38f0
lea esp, [esp]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x583eb5
sub eax, edx
push eax
push esi
push edi
call fcn.0061a99c
add esp, 0xc
test eax, eax
je 0x583efb
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x583ed2
sub eax, edx
push eax
push esi
push ebx
call fcn.0061a99c
add esp, 0xc
test eax, eax
je 0x583f19
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6a3968
jl 0x583eb0
jmp 0x583f2e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6a38f0]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x583f10
jmp 0x583f2a
lea eax, [ebp*4 + 0x6a3968]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x583f23
sub eax, edx
add esi, eax
cmp ebp, 0xc
je case.0x583dbd.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.0x583dbd.90
push edi
push str._a__b__e__H:_M:_S__Y
push esi
mov ecx, ebp
call fcn.00583d10
mov esi, eax
test esi, esi
je case.0x583dbd.38
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x583f7c
inc esi
cmp byte [esi], 0x20
je 0x583f76
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x583fb6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x583fb6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x583fb6
cmp cl, 0x39
jle 0x583f90
cmp eax, 0x63
ja case.0x583dbd.38
mov dword [esp + 0x20], eax
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x583fda
inc esi
cmp byte [esi], 0x20
je 0x583fd4
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x584016
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x584016
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584016
cmp cl, 0x39
jle 0x583ff0
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x583dbd.38
mov dword [edi + 0xc], eax
jmp case.0x583dbd.90
push edi
push str._Y__m__d
jmp 0x583f53
push edi
push str._m__d__y
jmp 0x583f53
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x584056
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x584050
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x584706
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x584706
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584706
cmp cl, 0x39
jle 0x584070
jmp 0x584706
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 2
jne 0x5840b9
inc esi
cmp byte [esi], 0x20
je 0x5840b3
mov al, byte [esi]
cmp al, 0x30
jl case.0x583dbd.38
cmp al, 0x39
jg case.0x583dbd.38
jmp 0x5840d0
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x5840f4
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 0xc
ja 0x5840f4
mov al, byte [esi]
cmp al, 0x30
jl 0x5840f4
cmp al, 0x39
jle 0x5840d0
lea edx, [ecx - 1]
cmp edx, 0xb
ja case.0x583dbd.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.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 3
jne 0x584136
nop
inc esi
cmp byte [esi], 0x20
je 0x584130
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x584179
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x16e
ja 0x584179
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584179
cmp cl, 0x39
jle 0x584150
lea edx, [eax - 1]
cmp edx, 0x16d
ja case.0x583dbd.38
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5841a6
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x5841a0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x5847e6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x5847e6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5847e6
cmp cl, 0x39
jle 0x5841c0
jmp 0x5847e6
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x584209
inc esi
cmp byte [esi], 0x20
je 0x584203
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x584246
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x584246
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584246
cmp cl, 0x39
jle 0x584220
cmp eax, 0x3b
ja case.0x583dbd.38
mov dword [edi + 4], eax
jmp case.0x583dbd.90
movsx edx, byte [esi]
push edx
call fcn.00615321
add esp, 4
test eax, eax
je case.0x583dbd.90
jmp 0x584270
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.00615321
add esp, 4
test eax, eax
jne 0x584270
jmp case.0x583dbd.90
push 2
push esi
push 0x6a39c4
call fcn.0061a99c
add esp, 0xc
test eax, eax
jne 0x5842a3
add esi, 2
jmp case.0x583dbd.90
push 2
push esi
push 0x6a39c0
call fcn.0061a99c
add esp, 0xc
test eax, eax
jne case.0x583dbd.38
add esi, 2
mov dword [esp + 0x1c], 1
jmp case.0x583dbd.90
push edi
push str._I:_M:_S__p
jmp 0x583f53
push edi
push str._H:_M
jmp 0x583f53
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x583dbd.38
cmp al, 0x39
jg case.0x583dbd.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 0x58430a
cmp al, 0x39
jle 0x5842f5
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.00583ce0
add esp, 8
test eax, eax
je case.0x583dbd.38
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58433b
inc esi
cmp byte [esi], 0x20
je 0x584335
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.38
nop
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x584376
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x584376
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584376
cmp cl, 0x39
jle 0x584350
cmp eax, 0x3d
ja case.0x583dbd.38
mov dword [edi], eax
jmp case.0x583dbd.90
push edi
push str._H:_M:_S
jmp 0x583f53
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 1
jne 0x5843a6
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x5843a0
mov al, byte [esi]
cmp al, 0x30
jl case.0x583dbd.38
cmp al, 0x39
jg case.0x583dbd.38
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x5843dc
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 7
ja 0x5843dc
mov al, byte [esi]
cmp al, 0x30
jl 0x5843dc
cmp al, 0x39
jle 0x5843b8
lea edx, [ecx - 1]
cmp edx, 6
ja case.0x583dbd.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.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x584426
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x584420
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x584466
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x584466
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584466
cmp cl, 0x39
jle 0x584440
cmp eax, 0x63
ja case.0x583dbd.38
jmp case.0x583dbd.90
mov al, byte [esi]
cmp al, 0x30
jl case.0x583dbd.38
cmp al, 0x39
jg case.0x583dbd.38
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x583dbd.90
cmp al, 0x39
jle 0x584486
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5844ad
inc esi
cmp byte [esi], 0x20
je 0x5844a7
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x5844e7
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x5844e7
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5844e7
cmp cl, 0x39
jle 0x5844c1
cmp eax, 0x35
ja case.0x583dbd.38
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x584507
inc esi
cmp byte [esi], 0x20
je 0x584501
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.38
jmp 0x584520
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x584546
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x584546
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584546
cmp cl, 0x39
jle 0x584520
cmp eax, 6
ja case.0x583dbd.38
mov dword [edi + 0x18], eax
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x584569
inc esi
cmp byte [esi], 0x20
je 0x584563
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x5845a6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x5845a6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5845a6
cmp cl, 0x39
jle 0x584580
cmp eax, 0x63
ja case.0x583dbd.38
cmp eax, 0x45
jae 0x5845b7
add eax, 0x64
mov dword [esp + 0x14], 1
jmp 0x5849d7
xor eax, eax
cmp byte [esi], 0x20
mov edx, 4
jne 0x5845d6
inc esi
cmp byte [esi], 0x20
je 0x5845d0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x584619
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x270f
ja 0x584619
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584619
cmp cl, 0x39
jle 0x5845f0
cmp eax, 0x270f
ja case.0x583dbd.38
add eax, 0xfffff894
mov dword [esp + 0x14], 0
jmp 0x5849d7
movsx eax, byte [ebx]
sub eax, 0x48
inc ebx
cmp eax, 0x31
ja case.0x583dbd.38
movzx edx, byte [eax + 0x584b3c]
jmp dword [edx*4 + 0x584b14]
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x584666
inc esi
cmp byte [esi], 0x20
je 0x584660
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x5846a6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x5846a6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5846a6
cmp cl, 0x39
jle 0x584680
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x583dbd.38
mov dword [edi + 0xc], eax
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5846cc
inc esi
cmp byte [esi], 0x20
je 0x5846c6
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x584706
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x584706
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584706
cmp cl, 0x39
jle 0x5846e0
cmp eax, 0x17
ja case.0x583dbd.38
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x584736
jmp 0x584730
inc esi
cmp byte [esi], 0x20
je 0x584730
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x584776
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x584776
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584776
cmp cl, 0x39
jle 0x584750
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x583dbd.38
dec eax
mov dword [edi + 8], eax
mov dword [esp + 0x10], 1
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5847a6
nop
inc esi
cmp byte [esi], 0x20
je 0x5847a0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x5847e6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x5847e6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5847e6
cmp cl, 0x39
jle 0x5847c0
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x583dbd.38
dec eax
mov dword [edi + 0x10], eax
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58480d
inc esi
cmp byte [esi], 0x20
je 0x584807
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x584847
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x584847
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584847
cmp cl, 0x39
jle 0x584821
cmp eax, 0x3b
ja case.0x583dbd.38
mov dword [edi + 4], eax
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58486a
inc esi
cmp byte [esi], 0x20
je 0x584864
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x5848a6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x5848a6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5848a6
cmp cl, 0x39
jle 0x584880
cmp eax, 0x3d
ja case.0x583dbd.38
mov dword [edi], eax
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5848c8
inc esi
cmp byte [esi], 0x20
je 0x5848c2
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x584906
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x584906
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584906
cmp cl, 0x39
jle 0x5848e0
cmp eax, 0x35
ja case.0x583dbd.38
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x584926
inc esi
cmp byte [esi], 0x20
je 0x584920
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x584966
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x584966
mov cl, byte [esi]
cmp cl, 0x30
jl 0x584966
cmp cl, 0x39
jle 0x584940
cmp eax, 6
ja case.0x583dbd.38
mov dword [edi + 0x18], eax
jmp case.0x583dbd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x584986
inc esi
cmp byte [esi], 0x20
je 0x584980
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x583dbd.38
cmp cl, 0x39
jg case.0x583dbd.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 0x5849c6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x5849c6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5849c6
cmp cl, 0x39
jle 0x5849a0
cmp eax, 0x63
ja case.0x583dbd.38
cmp eax, 0x45
jae 0x5849d7
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebx]
test al, al
jne 0x583d50
cmp dword [esp + 0x10], 0
je 0x5849f6
cmp dword [esp + 0x1c], 0
je 0x5849f6
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x584a31
cmp dword [esp + 0x14], 0
je 0x584a28
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