Function at 0x58ca80
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 0x58d7a1
mov edi, dword [esp + 0x30]
lea esp, [esp]
movsx eax, al
push eax
call fcn.0061f3e1
add esp, 4
test eax, eax
je 0x58caf8
movsx ecx, byte [esi]
push ecx
call fcn.0061f3e1
add esp, 4
test eax, eax
je 0x58caf2
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.0061f3e1
add esp, 4
test eax, eax
jne 0x58cae0
inc ebx
jmp case.0x58cb2d.90
mov al, byte [ebx]
inc ebx
cmp al, 0x25
je 0x58cb16
mov cl, byte [esi]
inc esi
cmp al, cl
je case.0x58cb2d.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.0x58cb2d.38
movzx edx, byte [eax + 0x58d82c]
jmp dword [edx*4 + 0x58d7b0]
mov al, byte [ebx]
cmp al, 0x63
je 0x58cb16
cmp al, 0x43
je 0x58cb16
cmp al, 0x79
je 0x58cb16
cmp al, 0x59
je 0x58cb16
cmp al, 0x78
je 0x58cb16
cmp al, 0x58
je 0x58cb16
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.0x58cb2d.38
jmp case.0x58cb2d.90
xor ebp, ebp
mov ebx, 0x6aeb10
mov edi, 0x6aeac8
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58cb77
sub eax, edx
push eax
push esi
push edi
call fcn.00624a3f
add esp, 0xc
test eax, eax
je 0x58cbbd
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58cb94
sub eax, edx
push eax
push esi
push ebx
call fcn.00624a3f
add esp, 0xc
test eax, eax
je 0x58cbd9
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6aeb0e
jl 0x58cb72
jmp 0x58cbee
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6aeac8]
lea edx, [eax + 1]
jmp 0x58cbd0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58cbd0
jmp 0x58cbea
lea eax, [ebp*4 + 0x6aeb10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58cbe3
sub eax, edx
add esi, eax
cmp ebp, 7
je case.0x58cb2d.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.0x58cb2d.90
xor ebp, ebp
mov ebx, 0x6aeba8
mov edi, 0x6aeb30
lea esp, [esp]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58cc25
sub eax, edx
push eax
push esi
push edi
call fcn.00624a3f
add esp, 0xc
test eax, eax
je 0x58cc6b
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58cc42
sub eax, edx
push eax
push esi
push ebx
call fcn.00624a3f
add esp, 0xc
test eax, eax
je 0x58cc89
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6aeba8
jl 0x58cc20
jmp 0x58cc9e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6aeb30]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58cc80
jmp 0x58cc9a
lea eax, [ebp*4 + 0x6aeba8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x58cc93
sub eax, edx
add esi, eax
cmp ebp, 0xc
je case.0x58cb2d.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.0x58cb2d.90
push edi
push str._a__b__e__H:_M:_S__Y
push esi
mov ecx, ebp
call fcn.0058ca80
mov esi, eax
test esi, esi
je case.0x58cb2d.38
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58ccec
inc esi
cmp byte [esi], 0x20
je 0x58cce6
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58cd26
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58cd26
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58cd26
cmp cl, 0x39
jle 0x58cd00
cmp eax, 0x63
ja case.0x58cb2d.38
mov dword [esp + 0x20], eax
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58cd4a
inc esi
cmp byte [esi], 0x20
je 0x58cd44
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58cd86
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x58cd86
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58cd86
cmp cl, 0x39
jle 0x58cd60
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58cb2d.38
mov dword [edi + 0xc], eax
jmp case.0x58cb2d.90
push edi
push str._Y__m__d
jmp 0x58ccc3
push edi
push str._m__d__y
jmp 0x58ccc3
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58cdc6
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x58cdc0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d476
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x58d476
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d476
cmp cl, 0x39
jle 0x58cde0
jmp 0x58d476
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 2
jne 0x58ce29
inc esi
cmp byte [esi], 0x20
je 0x58ce23
mov al, byte [esi]
cmp al, 0x30
jl case.0x58cb2d.38
cmp al, 0x39
jg case.0x58cb2d.38
jmp 0x58ce40
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x58ce64
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 0xc
ja 0x58ce64
mov al, byte [esi]
cmp al, 0x30
jl 0x58ce64
cmp al, 0x39
jle 0x58ce40
lea edx, [ecx - 1]
cmp edx, 0xb
ja case.0x58cb2d.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.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 3
jne 0x58cea6
nop
inc esi
cmp byte [esi], 0x20
je 0x58cea0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58cee9
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x16e
ja 0x58cee9
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58cee9
cmp cl, 0x39
jle 0x58cec0
lea edx, [eax - 1]
cmp edx, 0x16d
ja case.0x58cb2d.38
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58cf16
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x58cf10
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d556
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58d556
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d556
cmp cl, 0x39
jle 0x58cf30
jmp 0x58d556
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58cf79
inc esi
cmp byte [esi], 0x20
je 0x58cf73
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58cfb6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x58cfb6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58cfb6
cmp cl, 0x39
jle 0x58cf90
cmp eax, 0x3b
ja case.0x58cb2d.38
mov dword [edi + 4], eax
jmp case.0x58cb2d.90
movsx edx, byte [esi]
push edx
call fcn.0061f3e1
add esp, 4
test eax, eax
je case.0x58cb2d.90
jmp 0x58cfe0
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.0061f3e1
add esp, 4
test eax, eax
jne 0x58cfe0
jmp case.0x58cb2d.90
push 2
push esi
push 0x6aec04
call fcn.00624a3f
add esp, 0xc
test eax, eax
jne 0x58d013
add esi, 2
jmp case.0x58cb2d.90
push 2
push esi
push 0x6aec00
call fcn.00624a3f
add esp, 0xc
test eax, eax
jne case.0x58cb2d.38
add esi, 2
mov dword [esp + 0x1c], 1
jmp case.0x58cb2d.90
push edi
push str._I:_M:_S__p
jmp 0x58ccc3
push edi
push str._H:_M
jmp 0x58ccc3
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x58cb2d.38
cmp al, 0x39
jg case.0x58cb2d.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 0x58d07a
cmp al, 0x39
jle 0x58d065
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.0058ca50
add esp, 8
test eax, eax
je case.0x58cb2d.38
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d0ab
inc esi
cmp byte [esi], 0x20
je 0x58d0a5
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.38
nop
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58d0e6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x58d0e6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d0e6
cmp cl, 0x39
jle 0x58d0c0
cmp eax, 0x3d
ja case.0x58cb2d.38
mov dword [edi], eax
jmp case.0x58cb2d.90
push edi
push str._H:_M:_S
jmp 0x58ccc3
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 1
jne 0x58d116
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x58d110
mov al, byte [esi]
cmp al, 0x30
jl case.0x58cb2d.38
cmp al, 0x39
jg case.0x58cb2d.38
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x58d14c
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 7
ja 0x58d14c
mov al, byte [esi]
cmp al, 0x30
jl 0x58d14c
cmp al, 0x39
jle 0x58d128
lea edx, [ecx - 1]
cmp edx, 6
ja case.0x58cb2d.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.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d196
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x58d190
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d1d6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58d1d6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d1d6
cmp cl, 0x39
jle 0x58d1b0
cmp eax, 0x63
ja case.0x58cb2d.38
jmp case.0x58cb2d.90
mov al, byte [esi]
cmp al, 0x30
jl case.0x58cb2d.38
cmp al, 0x39
jg case.0x58cb2d.38
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x58cb2d.90
cmp al, 0x39
jle 0x58d1f6
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d21d
inc esi
cmp byte [esi], 0x20
je 0x58d217
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58d257
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x58d257
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d257
cmp cl, 0x39
jle 0x58d231
cmp eax, 0x35
ja case.0x58cb2d.38
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x58d277
inc esi
cmp byte [esi], 0x20
je 0x58d271
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.38
jmp 0x58d290
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58d2b6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x58d2b6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d2b6
cmp cl, 0x39
jle 0x58d290
cmp eax, 6
ja case.0x58cb2d.38
mov dword [edi + 0x18], eax
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d2d9
inc esi
cmp byte [esi], 0x20
je 0x58d2d3
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d316
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58d316
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d316
cmp cl, 0x39
jle 0x58d2f0
cmp eax, 0x63
ja case.0x58cb2d.38
cmp eax, 0x45
jae 0x58d327
add eax, 0x64
mov dword [esp + 0x14], 1
jmp 0x58d747
xor eax, eax
cmp byte [esi], 0x20
mov edx, 4
jne 0x58d346
inc esi
cmp byte [esi], 0x20
je 0x58d340
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d389
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x270f
ja 0x58d389
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d389
cmp cl, 0x39
jle 0x58d360
cmp eax, 0x270f
ja case.0x58cb2d.38
add eax, 0xfffff894
mov dword [esp + 0x14], 0
jmp 0x58d747
movsx eax, byte [ebx]
sub eax, 0x48
inc ebx
cmp eax, 0x31
ja case.0x58cb2d.38
movzx edx, byte [eax + 0x58d8ac]
jmp dword [edx*4 + 0x58d884]
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d3d6
inc esi
cmp byte [esi], 0x20
je 0x58d3d0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d416
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x58d416
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d416
cmp cl, 0x39
jle 0x58d3f0
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58cb2d.38
mov dword [edi + 0xc], eax
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d43c
inc esi
cmp byte [esi], 0x20
je 0x58d436
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58d476
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x58d476
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d476
cmp cl, 0x39
jle 0x58d450
cmp eax, 0x17
ja case.0x58cb2d.38
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d4a6
jmp 0x58d4a0
inc esi
cmp byte [esi], 0x20
je 0x58d4a0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d4e6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58d4e6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d4e6
cmp cl, 0x39
jle 0x58d4c0
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58cb2d.38
dec eax
mov dword [edi + 8], eax
mov dword [esp + 0x10], 1
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d516
nop
inc esi
cmp byte [esi], 0x20
je 0x58d510
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d556
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x58d556
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d556
cmp cl, 0x39
jle 0x58d530
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58cb2d.38
dec eax
mov dword [edi + 0x10], eax
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d57d
inc esi
cmp byte [esi], 0x20
je 0x58d577
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x58d5b7
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x58d5b7
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d5b7
cmp cl, 0x39
jle 0x58d591
cmp eax, 0x3b
ja case.0x58cb2d.38
mov dword [edi + 4], eax
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d5da
inc esi
cmp byte [esi], 0x20
je 0x58d5d4
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d616
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x58d616
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d616
cmp cl, 0x39
jle 0x58d5f0
cmp eax, 0x3d
ja case.0x58cb2d.38
mov dword [edi], eax
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d638
inc esi
cmp byte [esi], 0x20
je 0x58d632
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d676
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x58d676
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d676
cmp cl, 0x39
jle 0x58d650
cmp eax, 0x35
ja case.0x58cb2d.38
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x58d696
inc esi
cmp byte [esi], 0x20
je 0x58d690
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d6d6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x58d6d6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d6d6
cmp cl, 0x39
jle 0x58d6b0
cmp eax, 6
ja case.0x58cb2d.38
mov dword [edi + 0x18], eax
jmp case.0x58cb2d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58d6f6
inc esi
cmp byte [esi], 0x20
je 0x58d6f0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58cb2d.38
cmp cl, 0x39
jg case.0x58cb2d.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 0x58d736
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x58d736
mov cl, byte [esi]
cmp cl, 0x30
jl 0x58d736
cmp cl, 0x39
jle 0x58d710
cmp eax, 0x63
ja case.0x58cb2d.38
cmp eax, 0x45
jae 0x58d747
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebx]
test al, al
jne 0x58cac0
cmp dword [esp + 0x10], 0
je 0x58d766
cmp dword [esp + 0x1c], 0
je 0x58d766
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x58d7a1
cmp dword [esp + 0x14], 0
je 0x58d798
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