Function at 0x14004446c
Capabilities:
Parse credit card information

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x148]
sub rsp, 0x230
mov rax, qword [0x1400abd00]
xor r15d, r15d
mov r14, r8
mov qword [rsp + 0x20], r15
mov rdi, rcx
mov dword [rsp + 0x28], r15d
mov r8b, 0x41
mov qword [rsp + 0x50], r15
mov cl, byte [rax]
lea rsi, [rax + 1]
mov dword [rsp + 0x58], r15d
mov ebx, r15d
mov qword [0x1400abd00], rsi
cmp cl, r8b
jg 0x1400446f8
je 0x140044c29
test cl, cl
je 0x1400446da
cmp cl, 0x2f
jle 0x14004480d
cmp cl, 0x31
jle 0x14004459e
cmp cl, 0x39
jg 0x14004480d
movsx eax, byte [rsi - 1]
sub eax, 0x32
movsxd rdx, eax
lea rcx, [rsp + 0x20]
shl rdx, 4
lea rax, str._new
add rdx, rax
call fcn.140040884
cmp qword [rsp + 0x20], r15
je 0x14004456f
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.1400405ac
lea r8, [rsp + 0x20]
mov rcx, rax
lea rdx, [rbp - 0x20]
call fcn.140040920
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 rsp, r11
pop r15
pop r14
pop rbp
ret
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x38], r15d
test dl, dl
je 0x140044659
lea rcx, [rbp + 0x30]
call fcn.140045d78
mov dl, 0x3c
mov qword [rbp - 0x80], r15
lea rcx, [rbp - 0x80]
mov dword [rbp - 0x78], r15d
mov rbx, rax
call fcn.140041b10
mov r8, rbx
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x80]
call fcn.140040920
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140040a20
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x140044614
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140078a80]
cmp al, 0x3e
jne 0x140044614
mov dl, 0x20
lea rcx, [rsp + 0x30]
call fcn.140040a64
mov dl, 0x3e
lea rcx, [rsp + 0x30]
call fcn.140040a64
mov ebx, 1
test r14, r14
je 0x14004462d
mov byte [r14], bl
mov rsi, qword [0x1400abd00]
cmp byte [rsi], r15b
jne 0x14004464a
mov rax, qword [rsp + 0x30]
mov qword [rdi], rax
mov eax, dword [rsp + 0x38]
jmp 0x14004457b
add rsi, rbx
mov rbx, qword [rsp + 0x30]
mov qword [0x1400abd00], rsi
xor r8d, r8d
lea rcx, [rbp + 0x40]
xor edx, edx
call fcn.140046e50
mov rcx, qword [rax]
mov eax, dword [rax + 8]
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x28], eax
mov qword [0x1400abd00], rsi
test rcx, rcx
je 0x1400446bd
cmp byte [rsi - 1], 0x31
jne 0x1400446bd
mov dl, 0x7e
mov qword [rbp - 0x70], r15
lea rcx, [rbp - 0x70]
mov dword [rbp - 0x68], r15d
call fcn.140041b10
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x70]
call fcn.140040920
mov rax, qword [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov eax, dword [rbp - 0x48]
mov dword [rsp + 0x28], eax
test rbx, rbx
je 0x14004456f
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.140040a20
jmp 0x14004456f
lea rax, [rsi - 1]
mov qword [0x1400abd00], rax
lea rax, [0x140085bc0]
mov qword [rdi], rax
mov dword [rdi + 8], r15d
jmp 0x14004457e
cmp cl, 0x42
je 0x140044c24
jle 0x14004480d
cmp cl, 0x5a
jle 0x140044c29
cmp cl, 0x5f
jne 0x14004480d
movsx ecx, byte [rsi]
inc rsi
mov qword [0x1400abd00], rsi
cmp ecx, 0x4f
jg 0x140044840
cmp ecx, 0x44
jge 0x140044c0c
cmp ecx, 0x39
jg 0x1400447c6
je 0x14004478f
test ecx, ecx
je 0x1400446da
cmp ecx, 0x2f
jle 0x14004480d
cmp ecx, 0x36
jle 0x140044783
cmp ecx, 0x38
jg 0x14004480d
movsx eax, byte [rsi - 1]
sub eax, 0xe
movsxd rdx, eax
mov rcx, rdi
shl rdx, 4
lea rax, str._new
add rdx, rax
call fcn.1400405ac
jmp 0x14004457e
movsx eax, byte [rsi - 1]
sub eax, 0xe
jmp 0x1400444fe
movsx eax, byte [rsi - 1]
lea rcx, [rbp - 0x40]
sub eax, 0xe
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.1400405ac
mov ecx, dword [rbp - 0x38]
mov rax, qword [rbp - 0x40]
bts ecx, 0xf
mov qword [rdi], rax
mov dword [rdi + 8], ecx
jmp 0x14004457e
cmp ecx, 0x3f
je 0x1400447f5
cmp ecx, 0x40
jle 0x14004480d
cmp ecx, 0x42
jle 0x140044c0c
xor edx, edx
lea rcx, [rbp - 0x30]
lea r8d, [rdx + 1]
call fcn.140045c48
mov ecx, dword [rbp - 0x28]
mov rax, qword [rbp - 0x30]
bts ecx, 0xc
jmp 0x1400447bb
mov al, byte [rsi]
inc rsi
mov qword [0x1400abd00], rsi
test al, al
je 0x1400446da
cmp al, 0x30
je 0x14004481d
mov dword [rdi + 8], r15d
mov byte [rdi + 8], 2
mov qword [rdi], r15
jmp 0x14004457e
xor r8d, r8d
lea rcx, [rsp + 0x40]
lea edx, [r8 + 1]
call fcn.140045c48
mov ecx, dword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
bts ecx, 0xc
jmp 0x1400447bb
cmp ecx, 0x54
jg 0x140044a84
cmp ecx, 0x53
jge 0x140044c0c
sub ecx, 0x50
je 0x140044a2c
sub ecx, 1
je 0x140044519
cmp ecx, 1
jne 0x14004480d
movsx eax, byte [rsi - 1]
lea rcx, [rsp + 0x20]
sub eax, 0x15
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.140040884
mov rax, qword [0x1400abd00]
movsx ecx, byte [rax]
test cl, cl
jne 0x1400448b1
mov r8d, 1
lea rcx, [rsp + 0x20]
mov rdx, rdi
call fcn.140040978
jmp 0x14004457e
mov eax, ecx
add eax, 0xffffffd0
js 0x14004480d
cmp eax, 5
jae 0x14004480d
lfence
movsxd rdx, eax
lea rcx, [rsp + 0x50]
shl rdx, 4
lea rax, str._Type_Descriptor
add rdx, rax
call fcn.140040884
mov rax, qword [0x1400abd00]
mov cl, byte [rax]
inc rax
mov qword [0x1400abd00], rax
cmp cl, 0x30
je 0x1400449e5
cmp cl, 0x31
je 0x140044917
jle 0x14004490f
cmp cl, 0x34
jle 0x140044a7d
dec rax
jmp 0x1400446de
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x20]
call fcn.140040920
lea rcx, [rbp + 0x50]
call fcn.140045a00
mov r8b, 0x2c
lea rdx, [rbp + 0x60]
mov rcx, rax
call fcn.14004094c
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140040a20
lea rcx, [rbp + 0x70]
call fcn.140045a00
mov r8b, 0x2c
lea rdx, [rbp + 0x80]
mov rcx, rax
call fcn.14004094c
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140040a20
lea rcx, [rbp + 0x90]
call fcn.140045a00
mov r8b, 0x2c
lea rdx, [rbp + 0xa0]
mov rcx, rax
call fcn.14004094c
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140040a20
xor edx, edx
lea rcx, [rbp + 0xb0]
call fcn.1400434fc
mov r8b, 0x29
lea rdx, [rbp + 0xc0]
mov rcx, rax
call fcn.14004094c
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140040a20
mov r8b, 0x27
lea rcx, [rsp + 0x60]
mov rdx, rdi
call fcn.14004094c
jmp 0x14004457e
xor edx, edx
lea rcx, [rbp]
call fcn.1400430f8
mov r8b, 0x20
lea rdx, [rbp + 0xd0]
lea rcx, [rbp]
call fcn.14004094c
lea r8, [rsp + 0x20]
mov rcx, rax
lea rdx, [rbp + 0xe0]
call fcn.140040920
mov rcx, rax
mov rdx, rdi
lea r8, [rsp + 0x50]
call fcn.140040920
jmp 0x14004457e
movsx eax, byte [rsi - 1]
lea rcx, [rsp + 0x20]
sub eax, 0x15
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.140040884
xor r8d, r8d
lea rcx, [rbp + 0xf0]
xor edx, edx
call fcn.14004446c
mov rcx, qword [rax]
mov edx, dword [rax + 8]
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x58], edx
test rcx, rcx
je 0x140044a7d
bt edx, 0xa
jb 0x14004480d
lea rcx, [rsp + 0x20]
jmp 0x140044a1a
cmp ecx, 0x56
jle 0x140044c18
cmp ecx, 0x57
jle 0x14004480d
cmp ecx, 0x59
jle 0x140044c0c
cmp ecx, 0x5f
jne 0x14004480d
mov al, byte [rsi]
inc rsi
mov qword [0x1400abd00], rsi
cmp al, r8b
jl 0x14004480d
cmp al, 0x44
jle 0x140044ade
cmp al, 0x46
jle 0x140044b57
cmp al, 0x4a
jle 0x140044ade
cmp al, 0x4b
je 0x140044aea
sub al, 0x4c
lea ebx, [rcx - 0x5e]
cmp al, bl
ja 0x14004480d
movsx eax, byte [rsi - 1]
add eax, 4
jmp 0x140044765
movsx eax, byte [rsi - 1]
lea rcx, [rbp - 0x60]
add eax, 4
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.1400405ac
mov ebx, 1
jmp 0x140044b2c
cmp cl, 0x40
je 0x140044b3e
add rax, rbx
mov dl, cl
lea rcx, [rbp - 0x60]
mov qword [0x1400abd00], rax
call fcn.140040a64
mov rax, qword [0x1400abd00]
mov cl, byte [rax]
test cl, cl
jne 0x140044b12
cmp cl, 0x40
jne 0x140044b48
add rax, rbx
mov qword [0x1400abd00], rax
mov rax, qword [rbp - 0x60]
mov qword [rdi], rax
mov eax, dword [rbp - 0x58]
jmp 0x14004457b
movsx eax, byte [rsi - 1]
lea rcx, [rsp + 0x70]
add eax, 4
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.1400405ac
mov rax, qword [0x1400abd00]
cmp byte [rax], 0x3f
jne 0x140044bb6
lea rcx, [rbp + 0x100]
call fcn.14004320c
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140040a20
mov rax, qword [0x1400abd00]
cmp byte [rax], 0x40
jne 0x140044bcf
inc rax
mov qword [0x1400abd00], rax
jmp 0x140044bcf
lea rcx, [rbp + 0x110]
call fcn.140045d2c
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140040a20
lea rax, [0x1400856f8]
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.1400409a4
mov rax, qword [rsp + 0x70]
mov qword [rdi], rax
mov eax, dword [rsp + 0x78]
jmp 0x14004457b
movsx eax, byte [rsi - 1]
sub eax, 0x15
jmp 0x140044765
movsx eax, byte [rsi - 1]
sub eax, 0x15
jmp 0x1400444fe
mov ebx, 1
movsx eax, byte [rsi - 1]
lea rcx, [rsp + 0x20]
sub eax, 0x39
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.140040884
test ebx, ebx
je 0x140044519
cmp qword [rsp + 0x20], r15
je 0x14004456f
bts dword [rsp + 0x28], 9
jmp 0x14004456f