Function at 0x14008a844
Capabilities:
Parse credit card information

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x148]
sub rsp, 0x230
mov rax, qword [0x1400fdda0]
xor r12d, r12d
mov r15, r8
mov qword [rsp + 0x20], r12
mov rdi, rcx
mov dword [rsp + 0x28], r12d
mov r8b, 0x41
mov qword [rsp + 0x50], r12
mov cl, byte [rax]
lea rsi, [rax + 1]
mov dword [rsp + 0x58], r12d
mov ebx, r12d
mov qword [0x1400fdda0], rsi
cmp cl, r8b
jg 0x14008ab5a
je 0x14008b0e8
test cl, cl
je 0x14008ab3c
cmp cl, 0x2f
jle 0x14008ac7c
cmp cl, 0x31
jle 0x14008a982
cmp cl, 0x39
jg 0x14008ac7c
movsx rdx, byte [rsi - 1]
sub rdx, 0x32
add rdx, rdx
lea rax, str.T._f_
lea rcx, [rsp + 0x20]
mov r8d, dword [rax + rdx*8 + 8]
mov rdx, qword [rax + rdx*8]
call fcn.140086754
cmp qword [rsp + 0x20], r12
je 0x14008a94f
lea rax, str.operator
mov dword [rsp + 0x48], 8
mov qword [rsp + 0x40], rax
lea rdx, [rbp + 0x20]
movaps xmm0, xmmword [rsp + 0x40]
lea rcx, [rbp + 0x120]
movdqa xmmword [rbp + 0x20], xmm0
call fcn.140086940
lea r8, [rsp + 0x20]
mov rcx, rax
lea rdx, [rbp - 0x20]
call fcn.140086bc4
mov rax, qword [rbp - 0x20]
mov qword [rsp + 0x20], rax
mov eax, dword [rbp - 0x18]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x20]
mov qword [rdi], rax
mov eax, dword [rsp + 0x28]
mov dword [rdi + 8], eax
lea r11, [rsp + 0x230]
mov rax, rdi
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
mov qword [rsp + 0x30], r12
mov r14, r12
mov dword [rsp + 0x38], r12d
test dl, dl
je 0x14008aabb
lea rcx, [rbp + 0x30]
call fcn.14008c284
mov dl, 0x3c
mov qword [rbp - 0x80], r12
lea rcx, [rbp - 0x80]
mov dword [rbp - 0x78], r12d
mov rbx, rax
call fcn.140087dcc
mov r8, rbx
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x80]
call fcn.140086bc4
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140086cc8
mov r14, qword [rsp + 0x30]
lea rsi, vtable.charNode.0
mov ebx, 1
test r14, r14
je 0x14008aa3a
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x10]
call qword [case.0x14006dd52.0]
cmp al, 0x3e
jne 0x14008aa3a
cmp byte [rsp + 0x38], bl
jg 0x14008aa91
lea edx, [rbx + 0xf]
lea rcx, [0x1400fddc8]
call fcn.14008a6dc
test rax, rax
je 0x14008aa25
mov qword [rax], rsi
mov byte [rax + 8], 0x20
jmp 0x14008aa28
mov rax, r12
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.1400866f0
mov r14, qword [rsp + 0x30]
cmp byte [rsp + 0x38], bl
jg 0x14008aa91
test r14, r14
jne 0x14008aa5d
mov dl, 0x3e
mov qword [rsp + 0x30], r12
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x38], r12d
call fcn.140087dcc
jmp 0x14008aa8c
mov edx, 0x10
lea rcx, [0x1400fddc8]
call fcn.14008a6dc
test rax, rax
je 0x14008aa7c
mov qword [rax], rsi
mov byte [rax + 8], 0x3e
jmp 0x14008aa7f
mov rax, r12
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.1400866f0
mov r14, qword [rsp + 0x30]
test r15, r15
je 0x14008aa99
mov byte [r15], bl
mov rsi, qword [0x1400fdda0]
cmp byte [rsi], r12b
jne 0x14008aab1
mov eax, dword [rsp + 0x38]
mov qword [rdi], r14
jmp 0x14008a95b
add rsi, rbx
mov qword [0x1400fdda0], rsi
xor r8d, r8d
lea rcx, [rbp + 0x40]
xor edx, edx
call fcn.14008d78c
mov rcx, qword [rax]
mov eax, dword [rax + 8]
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x28], eax
mov qword [0x1400fdda0], rsi
test rcx, rcx
je 0x14008ab1f
cmp byte [rsi - 1], 0x31
jne 0x14008ab1f
mov dl, 0x7e
mov qword [rbp - 0x70], r12
lea rcx, [rbp - 0x70]
mov dword [rbp - 0x68], r12d
call fcn.140087dcc
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x70]
call fcn.140086bc4
mov rax, qword [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov eax, dword [rbp - 0x48]
mov dword [rsp + 0x28], eax
test r14, r14
je 0x14008a94f
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.140086cc8
jmp 0x14008a94f
lea rax, [rsi - 1]
mov qword [0x1400fdda0], rax
lea rax, [0x1400c3a30]
mov dword [rdi + 8], r12d
mov qword [rdi], rax
jmp 0x14008a95e
cmp cl, 0x42
je 0x14008b0e3
jle 0x14008ac7c
cmp cl, 0x5a
jle 0x14008b0e8
cmp cl, 0x5f
jne 0x14008ac7c
movsx ecx, byte [rsi]
lea rdx, [rsi + 1]
mov qword [0x1400fdda0], rdx
cmp ecx, 0x4f
jg 0x14008acb8
cmp ecx, 0x44
jge 0x14008b0c9
cmp ecx, 0x39
jg 0x14008ac37
je 0x14008ac00
test ecx, ecx
je 0x14008abf4
cmp ecx, 0x2f
jle 0x14008ac7c
cmp ecx, 0x36
jle 0x14008abe6
cmp ecx, 0x38
jg 0x14008ac7c
movsx eax, byte [rdx - 1]
sub eax, 0xe
movsxd rdx, eax
mov rcx, rdi
shl rdx, 4
lea rax, str.T._f_
add rdx, rax
call fcn.140086940
jmp 0x14008a95e
movsx rdx, byte [rdx - 1]
sub rdx, 0xe
jmp 0x14008a8dc
mov qword [0x1400fdda0], rsi
jmp 0x14008ab47
movsx eax, byte [rdx - 1]
lea rcx, [rbp - 0x40]
sub eax, 0xe
movsxd rdx, eax
lea rax, str.T._f_
shl rdx, 4
add rdx, rax
call fcn.140086940
mov ecx, dword [rbp - 0x38]
mov rax, qword [rbp - 0x40]
bts ecx, 0xf
mov qword [rdi], rax
mov dword [rdi + 8], ecx
jmp 0x14008a95e
cmp ecx, 0x3f
je 0x14008ac66
cmp ecx, 0x40
jle 0x14008ac7c
cmp ecx, 0x42
jle 0x14008b0c9
xor edx, edx
lea rcx, [rbp - 0x30]
lea r8d, [rdx + 1]
call fcn.14008c0ec
mov ecx, dword [rbp - 0x28]
mov rax, qword [rbp - 0x30]
bts ecx, 0xc
jmp 0x14008ac2c
mov cl, byte [rdx]
lea rax, [rdx + 1]
mov qword [0x1400fdda0], rax
test cl, cl
je 0x14008acac
cmp cl, 0x30
je 0x14008ac8c
mov dword [rdi + 8], r12d
mov byte [rdi + 8], 2
mov qword [rdi], r12
jmp 0x14008a95e
xor r8d, r8d
lea rcx, [rsp + 0x40]
lea edx, [r8 + 1]
call fcn.14008c0ec
mov ecx, dword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
bts ecx, 0xc
jmp 0x14008ac2c
mov qword [0x1400fdda0], rdx
jmp 0x14008ab47
cmp ecx, 0x54
jg 0x14008af11
cmp ecx, 0x53
jge 0x14008b0c9
sub ecx, 0x50
je 0x14008aeb5
sub ecx, 1
je 0x14008a8f9
cmp ecx, 1
jne 0x14008ac7c
movsx rdx, byte [rdx - 1]
lea rax, str.T._f_
sub rdx, 0x15
lea rcx, [rsp + 0x20]
add rdx, rdx
mov r8d, dword [rax + rdx*8 + 8]
mov rdx, qword [rax + rdx*8]
call fcn.140086754
mov rax, qword [0x1400fdda0]
movsx rcx, byte [rax]
test cl, cl
jne 0x14008ad2e
mov r8d, 1
lea rcx, [rsp + 0x20]
mov rdx, rdi
call fcn.140086c1c
jmp 0x14008a95e
cmp cl, 0x30
jl 0x14008ac7c
lea rax, [rcx - 0x30]
mov rdx, rcx
cmp rax, 5
jae 0x14008ac7c
lfence
add rdx, 0xffffffffffffffd0
lea rax, str._3_f_
add rdx, rdx
lea rcx, [rsp + 0x50]
mov r8d, dword [rax + rdx*8 + 8]
mov rdx, qword [rax + rdx*8]
call fcn.140086754
mov rax, qword [0x1400fdda0]
mov cl, byte [rax]
inc rax
mov qword [0x1400fdda0], rax
cmp cl, 0x30
je 0x14008ae6e
cmp cl, 0x31
je 0x14008ada0
jle 0x14008ad98
cmp cl, 0x34
jle 0x14008af0a
dec rax
jmp 0x14008ab40
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x20]
call fcn.140086bc4
lea rcx, [rbp + 0x50]
call fcn.14008bf50
mov r8b, 0x2c
lea rdx, [rbp + 0x60]
mov rcx, rax
call fcn.140086bf0
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140086cc8
lea rcx, [rbp + 0x70]
call fcn.14008bf50
mov r8b, 0x2c
lea rdx, [rbp + 0x80]
mov rcx, rax
call fcn.140086bf0
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140086cc8
lea rcx, [rbp + 0x90]
call fcn.14008bf50
mov r8b, 0x2c
lea rdx, [rbp + 0xa0]
mov rcx, rax
call fcn.140086bf0
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140086cc8
xor edx, edx
lea rcx, [rbp + 0xb0]
call fcn.14008982c
mov r8b, 0x29
lea rdx, [rbp + 0xc0]
mov rcx, rax
call fcn.140086bf0
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140086cc8
mov r8b, 0x27
lea rcx, [rsp + 0x60]
mov rdx, rdi
call fcn.140086bf0
jmp 0x14008a95e
xor edx, edx
lea rcx, [rbp]
call fcn.140089434
mov r8b, 0x20
lea rdx, [rbp + 0xd0]
lea rcx, [rbp]
call fcn.140086bf0
lea r8, [rsp + 0x20]
mov rcx, rax
lea rdx, [rbp + 0xe0]
call fcn.140086bc4
mov rcx, rax
mov rdx, rdi
lea r8, [rsp + 0x50]
call fcn.140086bc4
jmp 0x14008a95e
movsx rdx, byte [rdx - 1]
lea rax, str.T._f_
sub rdx, 0x15
lea rcx, [rsp + 0x20]
add rdx, rdx
mov r8d, dword [rax + rdx*8 + 8]
mov rdx, qword [rax + rdx*8]
call fcn.140086754
xor r8d, r8d
lea rcx, [rbp + 0xf0]
xor edx, edx
call fcn.14008a844
mov rcx, qword [rax]
mov edx, dword [rax + 8]
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x58], edx
test rcx, rcx
je 0x14008af0a
bt edx, 0xa
jb 0x14008ac7c
lea rcx, [rsp + 0x20]
jmp 0x14008aea3
cmp ecx, 0x56
jle 0x14008b0d5
cmp ecx, 0x57
jle 0x14008ac7c
cmp ecx, 0x59
jle 0x14008b0c9
cmp ecx, 0x5f
jne 0x14008ac7c
mov al, byte [rdx]
inc rdx
mov qword [0x1400fdda0], rdx
cmp al, 0x4b
jg 0x14008b096
je 0x14008b029
cmp al, r8b
jl 0x14008ac7c
cmp al, 0x44
jle 0x14008af68
cmp al, 0x46
jle 0x14008af74
cmp al, 0x4a
jg 0x14008ac7c
movsx eax, byte [rdx - 1]
add eax, 4
jmp 0x14008abc8
movsx eax, byte [rdx - 1]
lea rcx, [rsp + 0x70]
add eax, 4
movsxd rdx, eax
lea rax, str.T._f_
shl rdx, 4
add rdx, rax
call fcn.140086940
mov rax, qword [0x1400fdda0]
cmp byte [rax], 0x3f
jne 0x14008afd3
lea rcx, [rbp + 0x100]
call fcn.140089548
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140086cc8
mov rax, qword [0x1400fdda0]
cmp byte [rax], 0x40
jne 0x14008afec
inc rax
mov qword [0x1400fdda0], rax
jmp 0x14008afec
lea rcx, [rbp + 0x110]
call fcn.14008c238
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140086cc8
lea rax, [0x1400c3468]
mov dword [rsp + 0x48], 2
mov qword [rsp + 0x40], rax
lea rdx, [rbp + 0x10]
movaps xmm0, xmmword [rsp + 0x40]
lea rcx, [rsp + 0x70]
movdqa xmmword [rbp + 0x10], xmm0
call fcn.140086c48
mov rax, qword [rsp + 0x70]
mov qword [rdi], rax
mov eax, dword [rsp + 0x78]
jmp 0x14008a95b
movsx eax, byte [rdx - 1]
lea rcx, [rbp - 0x60]
add eax, 4
movsxd rdx, eax
lea rax, str.T._f_
shl rdx, 4
add rdx, rax
call fcn.140086940
mov ebx, 1
jmp 0x14008b06b
cmp cl, 0x40
je 0x14008b07d
add rax, rbx
mov dl, cl
lea rcx, [rbp - 0x60]
mov qword [0x1400fdda0], rax
call fcn.140086d7c
mov rax, qword [0x1400fdda0]
mov cl, byte [rax]
test cl, cl
jne 0x14008b051
cmp cl, 0x40
jne 0x14008b087
add rax, rbx
mov qword [0x1400fdda0], rax
mov rax, qword [rbp - 0x60]
mov qword [rdi], rax
mov eax, dword [rbp - 0x58]
jmp 0x14008a95b
cmp al, 0x4d
jle 0x14008af68
cmp al, 0x4e
jne 0x14008ac7c
mov cl, byte [rdx]
lea rax, [rdx + 1]
mov qword [0x1400fdda0], rax
cmp cl, 0x32
jne 0x14008ac7c
mov rcx, rdi
call fcn.14008d3d4
jmp 0x14008a95e
movsx eax, byte [rdx - 1]
sub eax, 0x15
jmp 0x14008abc8
movsx rdx, byte [rdx - 1]
sub rdx, 0x15
jmp 0x14008a8dc
mov ebx, 1
movsx rdx, byte [rsi - 1]
lea rax, str.T._f_
sub rdx, 0x39
lea rcx, [rsp + 0x20]
add rdx, rdx
mov r8d, dword [rax + rdx*8 + 8]
mov rdx, qword [rax + rdx*8]
call fcn.140086754
test ebx, ebx
je 0x14008a8f9
cmp qword [rsp + 0x20], r12
je 0x14008a94f
bts dword [rsp + 0x28], 9
jmp 0x14008a94f