Function at 0x58ee10
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 0x58fb31
mov edi, dword [esp + 0x30]
lea esp, [esp]
movsx eax, al
push eax
call fcn.00622251
add esp, 4
test eax, eax
je 0x58ee88
movsx ecx, byte [esi]
push ecx
call fcn.00622251
add esp, 4
test eax, eax
je 0x58ee82
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.00622251
add esp, 4
test eax, eax
jne 0x58ee70
inc ebx
jmp case.0x58eebd.90
mov al, byte [ebx]
inc ebx
cmp al, 0x25
je 0x58eea6
mov cl, byte [esi]
inc esi
cmp al, cl
je case.0x58eebd.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.0x58eebd.38
movzx edx, byte [eax + 0x58fbbc]
jmp dword [edx*4 + 0x58fb40]
mov al, byte [ebx]
cmp al, 0x63
je 0x58eea6
cmp al, 0x43
je 0x58eea6
cmp al, 0x79
je 0x58eea6
cmp al, 0x59
je 0x58eea6
cmp al, 0x78
je 0x58eea6
cmp al, 0x58
je 0x58eea6
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.0x58eebd.38
jmp case.0x58eebd.90
xor ebp, ebp
mov ebx, 0x6b2160
mov edi, 0x6b2118
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58ef07
sub eax, edx
push eax
push esi
push edi
call fcn.006278af
add esp, 0xc
test eax, eax
je 0x58ef4d
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58ef24
sub eax, edx
push eax
push esi
push ebx
call fcn.006278af
add esp, 0xc
test eax, eax
je 0x58ef69
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6b215e
jl 0x58ef02
jmp 0x58ef7e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6b2118]
lea edx, [eax + 1]
jmp 0x58ef60
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58ef60
jmp 0x58ef7a
lea eax, [ebp*4 + 0x6b2160]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58ef73
sub eax, edx
add esi, eax
cmp ebp, 7
je case.0x58eebd.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.0x58eebd.90
xor ebp, ebp
mov ebx, 0x6b21f8
mov edi, 0x6b2180
lea esp, [esp]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58efb5
sub eax, edx
push eax
push esi
push edi
call fcn.006278af
add esp, 0xc
test eax, eax
je 0x58effb
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58efd2
sub eax, edx
push eax
push esi
push ebx
call fcn.006278af
add esp, 0xc
test eax, eax
je 0x58f019
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6b21f8
jl 0x58efb0
jmp 0x58f02e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6b2180]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f010
jmp 0x58f02a
lea eax, [ebp*4 + 0x6b21f8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58f023
sub eax, edx
add esi, eax
cmp ebp, 0xc
je case.0x58eebd.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.0x58eebd.90
push edi
push str._a__b__e__H:_M:_S__Y
push esi
mov ecx, ebp
call fcn.0058ee10
mov esi, eax
test esi, esi
je case.0x58eebd.38
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f07c
inc esi
cmp byte [esi], 0x20
je 0x58f076
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f0b6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58f0b6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f0b6
cmp cl, 0x39
jle 0x58f090
cmp eax, 0x63
ja case.0x58eebd.38
mov dword [esp + 0x20], eax
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f0da
inc esi
cmp byte [esi], 0x20
je 0x58f0d4
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f116
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x58f116
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f116
cmp cl, 0x39
jle 0x58f0f0
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58eebd.38
mov dword [edi + 0xc], eax
jmp case.0x58eebd.90
push edi
push str._Y__m__d
jmp 0x58f053
push edi
push str._m__d__y
jmp 0x58f053
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f156
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x58f150
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f806
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x58f806
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f806
cmp cl, 0x39
jle 0x58f170
jmp 0x58f806
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f1b9
inc esi
cmp byte [esi], 0x20
je 0x58f1b3
mov al, byte [esi]
cmp al, 0x30
jl case.0x58eebd.38
cmp al, 0x39
jg case.0x58eebd.38
jmp 0x58f1d0
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x58f1f4
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 0xc
ja 0x58f1f4
mov al, byte [esi]
cmp al, 0x30
jl 0x58f1f4
cmp al, 0x39
jle 0x58f1d0
lea edx, [ecx - 1]
cmp edx, 0xb
ja case.0x58eebd.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.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 3
jne 0x58f236
nop
inc esi
cmp byte [esi], 0x20
je 0x58f230
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f279
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x16e
ja 0x58f279
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f279
cmp cl, 0x39
jle 0x58f250
lea edx, [eax - 1]
cmp edx, 0x16d
ja case.0x58eebd.38
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f2a6
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x58f2a0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f8e6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58f8e6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f8e6
cmp cl, 0x39
jle 0x58f2c0
jmp 0x58f8e6
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f309
inc esi
cmp byte [esi], 0x20
je 0x58f303
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f346
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x58f346
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f346
cmp cl, 0x39
jle 0x58f320
cmp eax, 0x3b
ja case.0x58eebd.38
mov dword [edi + 4], eax
jmp case.0x58eebd.90
movsx edx, byte [esi]
push edx
call fcn.00622251
add esp, 4
test eax, eax
je case.0x58eebd.90
jmp 0x58f370
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.00622251
add esp, 4
test eax, eax
jne 0x58f370
jmp case.0x58eebd.90
push 2
push esi
push 0x6b2254
call fcn.006278af
add esp, 0xc
test eax, eax
jne 0x58f3a3
add esi, 2
jmp case.0x58eebd.90
push 2
push esi
push 0x6b2250
call fcn.006278af
add esp, 0xc
test eax, eax
jne case.0x58eebd.38
add esi, 2
mov dword [esp + 0x1c], 1
jmp case.0x58eebd.90
push edi
push str._I:_M:_S__p
jmp 0x58f053
push edi
push str._H:_M
jmp 0x58f053
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x58eebd.38
cmp al, 0x39
jg case.0x58eebd.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 0x58f40a
cmp al, 0x39
jle 0x58f3f5
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.0058ede0
add esp, 8
test eax, eax
je case.0x58eebd.38
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f43b
inc esi
cmp byte [esi], 0x20
je 0x58f435
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.38
nop
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f476
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x58f476
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f476
cmp cl, 0x39
jle 0x58f450
cmp eax, 0x3d
ja case.0x58eebd.38
mov dword [edi], eax
jmp case.0x58eebd.90
push edi
push str._H:_M:_S
jmp 0x58f053
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 1
jne 0x58f4a6
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x58f4a0
mov al, byte [esi]
cmp al, 0x30
jl case.0x58eebd.38
cmp al, 0x39
jg case.0x58eebd.38
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x58f4dc
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 7
ja 0x58f4dc
mov al, byte [esi]
cmp al, 0x30
jl 0x58f4dc
cmp al, 0x39
jle 0x58f4b8
lea edx, [ecx - 1]
cmp edx, 6
ja case.0x58eebd.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.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f526
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x58f520
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f566
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58f566
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f566
cmp cl, 0x39
jle 0x58f540
cmp eax, 0x63
ja case.0x58eebd.38
jmp case.0x58eebd.90
mov al, byte [esi]
cmp al, 0x30
jl case.0x58eebd.38
cmp al, 0x39
jg case.0x58eebd.38
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x58eebd.90
cmp al, 0x39
jle 0x58f586
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f5ad
inc esi
cmp byte [esi], 0x20
je 0x58f5a7
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f5e7
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x58f5e7
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f5e7
cmp cl, 0x39
jle 0x58f5c1
cmp eax, 0x35
ja case.0x58eebd.38
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x58f607
inc esi
cmp byte [esi], 0x20
je 0x58f601
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.38
jmp 0x58f620
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f646
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x58f646
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f646
cmp cl, 0x39
jle 0x58f620
cmp eax, 6
ja case.0x58eebd.38
mov dword [edi + 0x18], eax
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f669
inc esi
cmp byte [esi], 0x20
je 0x58f663
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f6a6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58f6a6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f6a6
cmp cl, 0x39
jle 0x58f680
cmp eax, 0x63
ja case.0x58eebd.38
cmp eax, 0x45
jae 0x58f6b7
add eax, 0x64
mov dword [esp + 0x14], 1
jmp 0x58fad7
xor eax, eax
cmp byte [esi], 0x20
mov edx, 4
jne 0x58f6d6
inc esi
cmp byte [esi], 0x20
je 0x58f6d0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f719
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x270f
ja 0x58f719
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f719
cmp cl, 0x39
jle 0x58f6f0
cmp eax, 0x270f
ja case.0x58eebd.38
add eax, 0xfffff894
mov dword [esp + 0x14], 0
jmp 0x58fad7
movsx eax, byte [ebx]
sub eax, 0x48
inc ebx
cmp eax, 0x31
ja case.0x58eebd.38
movzx edx, byte [eax + 0x58fc3c]
jmp dword [edx*4 + 0x58fc14]
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f766
inc esi
cmp byte [esi], 0x20
je 0x58f760
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f7a6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x58f7a6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f7a6
cmp cl, 0x39
jle 0x58f780
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58eebd.38
mov dword [edi + 0xc], eax
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f7cc
inc esi
cmp byte [esi], 0x20
je 0x58f7c6
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f806
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x58f806
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f806
cmp cl, 0x39
jle 0x58f7e0
cmp eax, 0x17
ja case.0x58eebd.38
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f836
jmp 0x58f830
inc esi
cmp byte [esi], 0x20
je 0x58f830
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f876
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58f876
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f876
cmp cl, 0x39
jle 0x58f850
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58eebd.38
dec eax
mov dword [edi + 8], eax
mov dword [esp + 0x10], 1
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f8a6
nop
inc esi
cmp byte [esi], 0x20
je 0x58f8a0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f8e6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58f8e6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f8e6
cmp cl, 0x39
jle 0x58f8c0
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58eebd.38
dec eax
mov dword [edi + 0x10], eax
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f90d
inc esi
cmp byte [esi], 0x20
je 0x58f907
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58f947
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x58f947
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f947
cmp cl, 0x39
jle 0x58f921
cmp eax, 0x3b
ja case.0x58eebd.38
mov dword [edi + 4], eax
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f96a
inc esi
cmp byte [esi], 0x20
je 0x58f964
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58f9a6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x58f9a6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58f9a6
cmp cl, 0x39
jle 0x58f980
cmp eax, 0x3d
ja case.0x58eebd.38
mov dword [edi], eax
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58f9c8
inc esi
cmp byte [esi], 0x20
je 0x58f9c2
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58fa06
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x58fa06
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fa06
cmp cl, 0x39
jle 0x58f9e0
cmp eax, 0x35
ja case.0x58eebd.38
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x58fa26
inc esi
cmp byte [esi], 0x20
je 0x58fa20
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58fa66
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x58fa66
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fa66
cmp cl, 0x39
jle 0x58fa40
cmp eax, 6
ja case.0x58eebd.38
mov dword [edi + 0x18], eax
jmp case.0x58eebd.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58fa86
inc esi
cmp byte [esi], 0x20
je 0x58fa80
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58eebd.38
cmp cl, 0x39
jg case.0x58eebd.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 0x58fac6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58fac6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58fac6
cmp cl, 0x39
jle 0x58faa0
cmp eax, 0x63
ja case.0x58eebd.38
cmp eax, 0x45
jae 0x58fad7
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebx]
test al, al
jne 0x58ee50
cmp dword [esp + 0x10], 0
je 0x58faf6
cmp dword [esp + 0x1c], 0
je 0x58faf6
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x58fb31
cmp dword [esp + 0x14], 0
je 0x58fb28
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