Function at 0x5878e0
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 0x588601
mov edi, dword [esp + 0x30]
lea esp, [esp]
movsx eax, al
push eax
call fcn.0061a161
add esp, 4
test eax, eax
je 0x587958
movsx ecx, byte [esi]
push ecx
call fcn.0061a161
add esp, 4
test eax, eax
je 0x587952
movsx edx, byte [esi + 1]
inc esi
push edx
call fcn.0061a161
add esp, 4
test eax, eax
jne 0x587940
inc ebx
jmp case.0x58798d.90
mov al, byte [ebx]
inc ebx
cmp al, 0x25
je 0x587976
mov cl, byte [esi]
inc esi
cmp al, cl
je case.0x58798d.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.0x58798d.38
movzx edx, byte [eax + 0x58868c]
jmp dword [edx*4 + 0x588610]
mov al, byte [ebx]
cmp al, 0x63
je 0x587976
cmp al, 0x43
je 0x587976
cmp al, 0x79
je 0x587976
cmp al, 0x59
je 0x587976
cmp al, 0x78
je 0x587976
cmp al, 0x58
je 0x587976
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.0x58798d.38
jmp case.0x58798d.90
xor ebp, ebp
mov ebx, 0x6a89a8
mov edi, 0x6a8960
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5879d7
sub eax, edx
push eax
push esi
push edi
call fcn.0061f7bf
add esp, 0xc
test eax, eax
je 0x587a1d
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5879f4
sub eax, edx
push eax
push esi
push ebx
call fcn.0061f7bf
add esp, 0xc
test eax, eax
je 0x587a39
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6a89a6
jl 0x5879d2
jmp 0x587a4e
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6a8960]
lea edx, [eax + 1]
jmp 0x587a30
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x587a30
jmp 0x587a4a
lea eax, [ebp*4 + 0x6a89a8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x587a43
sub eax, edx
add esi, eax
cmp ebp, 7
je case.0x58798d.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.0x58798d.90
xor ebp, ebp
mov ebx, 0x6a8a40
mov edi, 0x6a89c8
lea esp, [esp]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x587a85
sub eax, edx
push eax
push esi
push edi
call fcn.0061f7bf
add esp, 0xc
test eax, eax
je 0x587acb
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x587aa2
sub eax, edx
push eax
push esi
push ebx
call fcn.0061f7bf
add esp, 0xc
test eax, eax
je 0x587ae9
add edi, 0xa
inc ebp
add ebx, 4
cmp edi, 0x6a8a40
jl 0x587a80
jmp 0x587afe
lea eax, [ebp + ebp*4]
lea eax, [eax*2 + 0x6a89c8]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x587ae0
jmp 0x587afa
lea eax, [ebp*4 + 0x6a8a40]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x587af3
sub eax, edx
add esi, eax
cmp ebp, 0xc
je case.0x58798d.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.0x58798d.90
push edi
push str._a__b__e__H:_M:_S__Y
push esi
mov ecx, ebp
call fcn.005878e0
mov esi, eax
test esi, esi
je case.0x58798d.38
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x587b4c
inc esi
cmp byte [esi], 0x20
je 0x587b46
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x587b86
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x587b86
mov cl, byte [esi]
cmp cl, 0x30
jl 0x587b86
cmp cl, 0x39
jle 0x587b60
cmp eax, 0x63
ja case.0x58798d.38
mov dword [esp + 0x20], eax
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x587baa
inc esi
cmp byte [esi], 0x20
je 0x587ba4
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x587be6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x587be6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x587be6
cmp cl, 0x39
jle 0x587bc0
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58798d.38
mov dword [edi + 0xc], eax
jmp case.0x58798d.90
push edi
push str._Y__m__d
jmp 0x587b23
push edi
push str._m__d__y
jmp 0x587b23
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x587c26
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x587c20
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x5882d6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x5882d6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5882d6
cmp cl, 0x39
jle 0x587c40
jmp 0x5882d6
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 2
jne 0x587c89
inc esi
cmp byte [esi], 0x20
je 0x587c83
mov al, byte [esi]
cmp al, 0x30
jl case.0x58798d.38
cmp al, 0x39
jg case.0x58798d.38
jmp 0x587ca0
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x587cc4
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 0xc
ja 0x587cc4
mov al, byte [esi]
cmp al, 0x30
jl 0x587cc4
cmp al, 0x39
jle 0x587ca0
lea edx, [ecx - 1]
cmp edx, 0xb
ja case.0x58798d.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.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 3
jne 0x587d06
nop
inc esi
cmp byte [esi], 0x20
je 0x587d00
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x587d49
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x16e
ja 0x587d49
mov cl, byte [esi]
cmp cl, 0x30
jl 0x587d49
cmp cl, 0x39
jle 0x587d20
lea edx, [eax - 1]
cmp edx, 0x16d
ja case.0x58798d.38
dec eax
mov dword [edi + 0x1c], eax
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x587d76
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x587d70
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x5883b6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x5883b6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5883b6
cmp cl, 0x39
jle 0x587d90
jmp 0x5883b6
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x587dd9
inc esi
cmp byte [esi], 0x20
je 0x587dd3
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x587e16
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x587e16
mov cl, byte [esi]
cmp cl, 0x30
jl 0x587e16
cmp cl, 0x39
jle 0x587df0
cmp eax, 0x3b
ja case.0x58798d.38
mov dword [edi + 4], eax
jmp case.0x58798d.90
movsx edx, byte [esi]
push edx
call fcn.0061a161
add esp, 4
test eax, eax
je case.0x58798d.90
jmp 0x587e40
movsx eax, byte [esi + 1]
inc esi
push eax
call fcn.0061a161
add esp, 4
test eax, eax
jne 0x587e40
jmp case.0x58798d.90
push 2
push esi
push 0x6a8a9c
call fcn.0061f7bf
add esp, 0xc
test eax, eax
jne 0x587e73
add esi, 2
jmp case.0x58798d.90
push 2
push esi
push 0x6a8a98
call fcn.0061f7bf
add esp, 0xc
test eax, eax
jne case.0x58798d.38
add esi, 2
mov dword [esp + 0x1c], 1
jmp case.0x58798d.90
push edi
push str._I:_M:_S__p
jmp 0x587b23
push edi
push str._H:_M
jmp 0x587b23
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x30
jl case.0x58798d.38
cmp al, 0x39
jg case.0x58798d.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 0x587eda
cmp al, 0x39
jle 0x587ec5
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x34], ecx
call fcn.005878b0
add esp, 8
test eax, eax
je case.0x58798d.38
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x587f0b
inc esi
cmp byte [esi], 0x20
je 0x587f05
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.38
nop
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x587f46
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x587f46
mov cl, byte [esi]
cmp cl, 0x30
jl 0x587f46
cmp cl, 0x39
jle 0x587f20
cmp eax, 0x3d
ja case.0x58798d.38
mov dword [edi], eax
jmp case.0x58798d.90
push edi
push str._H:_M:_S
jmp 0x587b23
xor ecx, ecx
cmp byte [esi], 0x20
mov edx, 1
jne 0x587f76
lea ecx, [ecx]
inc esi
cmp byte [esi], 0x20
je 0x587f70
mov al, byte [esi]
cmp al, 0x30
jl case.0x58798d.38
cmp al, 0x39
jg case.0x58798d.38
movsx eax, al
dec edx
lea ecx, [ecx + ecx*4]
inc esi
lea ecx, [eax + ecx*2 - 0x30]
test edx, edx
jle 0x587fac
lea eax, [ecx + ecx*4]
add eax, eax
cmp eax, 7
ja 0x587fac
mov al, byte [esi]
cmp al, 0x30
jl 0x587fac
cmp al, 0x39
jle 0x587f88
lea edx, [ecx - 1]
cmp edx, 6
ja case.0x58798d.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.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x587ff6
lea esp, [esp]
inc esi
cmp byte [esi], 0x20
je 0x587ff0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x588036
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x588036
mov cl, byte [esi]
cmp cl, 0x30
jl 0x588036
cmp cl, 0x39
jle 0x588010
cmp eax, 0x63
ja case.0x58798d.38
jmp case.0x58798d.90
mov al, byte [esi]
cmp al, 0x30
jl case.0x58798d.38
cmp al, 0x39
jg case.0x58798d.38
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jl case.0x58798d.90
cmp al, 0x39
jle 0x588056
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58807d
inc esi
cmp byte [esi], 0x20
je 0x588077
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x5880b7
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x5880b7
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5880b7
cmp cl, 0x39
jle 0x588091
cmp eax, 0x35
ja case.0x58798d.38
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x5880d7
inc esi
cmp byte [esi], 0x20
je 0x5880d1
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.38
jmp 0x5880f0
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x588116
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x588116
mov cl, byte [esi]
cmp cl, 0x30
jl 0x588116
cmp cl, 0x39
jle 0x5880f0
cmp eax, 6
ja case.0x58798d.38
mov dword [edi + 0x18], eax
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x588139
inc esi
cmp byte [esi], 0x20
je 0x588133
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x588176
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x588176
mov cl, byte [esi]
cmp cl, 0x30
jl 0x588176
cmp cl, 0x39
jle 0x588150
cmp eax, 0x63
ja case.0x58798d.38
cmp eax, 0x45
jae 0x588187
add eax, 0x64
mov dword [esp + 0x14], 1
jmp 0x5885a7
xor eax, eax
cmp byte [esi], 0x20
mov edx, 4
jne 0x5881a6
inc esi
cmp byte [esi], 0x20
je 0x5881a0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x5881e9
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x270f
ja 0x5881e9
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5881e9
cmp cl, 0x39
jle 0x5881c0
cmp eax, 0x270f
ja case.0x58798d.38
add eax, 0xfffff894
mov dword [esp + 0x14], 0
jmp 0x5885a7
movsx eax, byte [ebx]
sub eax, 0x48
inc ebx
cmp eax, 0x31
ja case.0x58798d.38
movzx edx, byte [eax + 0x58870c]
jmp dword [edx*4 + 0x5886e4]
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x588236
inc esi
cmp byte [esi], 0x20
je 0x588230
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x588276
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x1f
ja 0x588276
mov cl, byte [esi]
cmp cl, 0x30
jl 0x588276
cmp cl, 0x39
jle 0x588250
lea edx, [eax - 1]
cmp edx, 0x1e
ja case.0x58798d.38
mov dword [edi + 0xc], eax
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58829c
inc esi
cmp byte [esi], 0x20
je 0x588296
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x5882d6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x17
ja 0x5882d6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5882d6
cmp cl, 0x39
jle 0x5882b0
cmp eax, 0x17
ja case.0x58798d.38
mov dword [edi + 8], eax
mov dword [esp + 0x10], 0
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x588306
jmp 0x588300
inc esi
cmp byte [esi], 0x20
je 0x588300
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x588346
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x588346
mov cl, byte [esi]
cmp cl, 0x30
jl 0x588346
cmp cl, 0x39
jle 0x588320
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58798d.38
dec eax
mov dword [edi + 8], eax
mov dword [esp + 0x10], 1
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x588376
nop
inc esi
cmp byte [esi], 0x20
je 0x588370
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x5883b6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0xc
ja 0x5883b6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5883b6
cmp cl, 0x39
jle 0x588390
lea edx, [eax - 1]
cmp edx, 0xb
ja case.0x58798d.38
dec eax
mov dword [edi + 0x10], eax
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x5883dd
inc esi
cmp byte [esi], 0x20
je 0x5883d7
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.38
movsx ecx, cl
dec edx
lea eax, [eax + eax*4]
inc esi
lea eax, [ecx + eax*2 - 0x30]
test edx, edx
jle 0x588417
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3b
ja 0x588417
mov cl, byte [esi]
cmp cl, 0x30
jl 0x588417
cmp cl, 0x39
jle 0x5883f1
cmp eax, 0x3b
ja case.0x58798d.38
mov dword [edi + 4], eax
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x58843a
inc esi
cmp byte [esi], 0x20
je 0x588434
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x588476
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x3d
ja 0x588476
mov cl, byte [esi]
cmp cl, 0x30
jl 0x588476
cmp cl, 0x39
jle 0x588450
cmp eax, 0x3d
ja case.0x58798d.38
mov dword [edi], eax
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x588498
inc esi
cmp byte [esi], 0x20
je 0x588492
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x5884d6
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x35
ja 0x5884d6
mov cl, byte [esi]
cmp cl, 0x30
jl 0x5884d6
cmp cl, 0x39
jle 0x5884b0
cmp eax, 0x35
ja case.0x58798d.38
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 1
jne 0x5884f6
inc esi
cmp byte [esi], 0x20
je 0x5884f0
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x588536
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 6
ja 0x588536
mov cl, byte [esi]
cmp cl, 0x30
jl 0x588536
cmp cl, 0x39
jle 0x588510
cmp eax, 6
ja case.0x58798d.38
mov dword [edi + 0x18], eax
jmp case.0x58798d.90
xor eax, eax
cmp byte [esi], 0x20
mov edx, 2
jne 0x588556
inc esi
cmp byte [esi], 0x20
je 0x588550
mov cl, byte [esi]
cmp cl, 0x30
jl case.0x58798d.38
cmp cl, 0x39
jg case.0x58798d.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 0x588596
lea ecx, [eax + eax*4]
add ecx, ecx
cmp ecx, 0x63
ja 0x588596
mov cl, byte [esi]
cmp cl, 0x30
jl 0x588596
cmp cl, 0x39
jle 0x588570
cmp eax, 0x63
ja case.0x58798d.38
cmp eax, 0x45
jae 0x5885a7
add eax, 0x64
mov dword [edi + 0x14], eax
mov al, byte [ebx]
test al, al
jne 0x587920
cmp dword [esp + 0x10], 0
je 0x5885c6
cmp dword [esp + 0x1c], 0
je 0x5885c6
add dword [edi + 8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x588601
cmp dword [esp + 0x14], 0
je 0x5885f8
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