Function at 0x1400a0330
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r14d, r9d
mov rsi, rdx
mov r13, rcx
mov rbx, qword [rdx + 8]
mov r15, qword [rbx + 0xc8]
cmp word [rbx + 0x10], 0x3f
jne 0x1400a03c2
mov rax, qword [rsi + 0x40]
mov rax, qword [rax]
cmp word [rax + 0x10], 0x59
je 0x1400a036f
cmp dword [rbx + 0x78], 0
jne 0x1400a03c2
mov rax, qword [rsi + 0x28]
cmp dword [rax - 8], 0
jne 0x1400a03c2
mov ecx, dword [rsi]
mov dword [rax - 8], ecx
test r15, r15
je 0x1400a03b1
mov rax, r15
nop word cs:[rax + rax]
mov rcx, qword [rsi + 0x28]
mov edx, dword [rcx - 8]
sub edx, dword [rax + 0x50]
jb 0x1400a03b1
mov dword [rcx - 8], edx
cmp dword [rax + 0x58], 0
jne 0x1400a03b1
mov rax, qword [rax + 0xc8]
test rax, rax
jne 0x1400a0390
test byte [r15 + 0x41], 2
je 0x1400a03c2
mov rax, qword [rsi + 0x28]
mov ecx, dword [rax - 8]
mov dword [rax - 0x2c], ecx
xor eax, eax
add r14d, dword [rbx + 0x58]
cmp byte [r13 + 0x17b], 1
jne 0x1400a0400
cmp word [r15 + 0x10], 0x42
jne 0x1400a0400
mov ecx, dword [rsi + 0x3c]
test ecx, ecx
je 0x1400a0400
mov rdx, qword [rsi + 0x40]
mov edx, dword [rdx + 0x20]
cmp edx, 6
je 0x1400a03f2
cmp edx, 1
jne 0x1400a0400
add r14d, ecx
xor eax, eax
cmp al, byte [r13 + 0x27d]
sbb eax, eax
test r8b, r8b
jne 0x1400a042d
mov rcx, qword [r13 + 0x2a0]
add eax, r14d
add eax, dword [rsi]
mov dword [rsp + 0x20], eax
mov byte [rsp + 0x30], 0
mov byte [rsp + 0x28], 0
mov rdx, rbx
xor r8d, r8d
mov r9d, r14d
call fcn.1400a94f0
mov al, byte [r13 + 0x88]
cmp al, 1
jne 0x1400a044d
cmp byte [rbx + 0x44], 0x1a
jne 0x1400a0460
mov rax, qword [rsi + 0x28]
or byte [rax - 4], 0x10
mov al, byte [r13 + 0x88]
cmp al, 2
jne 0x1400a0460
cmp byte [r15 + 0x44], 0x1a
jne 0x1400a0460
mov rax, qword [rsi + 0x28]
or byte [rax - 4], 0x10
cmp byte [rbx + 0x44], 0x44
jne 0x1400a04b5
mov rax, qword [rsi + 0x28]
mov dl, byte [rax - 3]
test dl, 4
jne 0x1400a04b5
mov ecx, dword [rbx + 0x84]
test ecx, ecx
je 0x1400a04af
mov ebp, dword [r13 + 0x90]
add ebp, dword [rsi + 0x3c]
mov edi, dword [rax - 0x30]
mov edx, dword [rsi]
add edx, r14d
add edx, dword [rbx + 0x50]
cmp ebp, edi
cmovb ebp, edi
add ecx, ebp
cmp ecx, edx
jbe 0x1400a0556
mov dword [rax - 0x1c], ecx
cmp byte [r13 + 4], 2
je 0x1400a04c0
jmp 0x1400a0564
and dl, 0xfd
mov byte [rax - 3], dl
cmp byte [r13 + 4], 2
jne 0x1400a0564
movzx eax, word [r15 + 0x10]
cmp ax, 0x15
je 0x1400a04fc
cmp ax, 0x13
je 0x1400a04fc
cmp byte [r15 + 0x44], 0x4a
je 0x1400a04fc
cmp ax, 0x17
jne 0x1400a0564
mov eax, 0x3000
and eax, dword [r15 + 0x40]
cmp eax, 0x1000
je 0x1400a0564
cmp byte [r13 + 0x94], 0
je 0x1400a0564
mov edi, dword [rsi]
mov rcx, r13
mov rdx, rsi
call fcn.14009f140
cmp edi, eax
jbe 0x1400a0564
mov rax, qword [r15 + 0xc8]
test rax, rax
je 0x1400a0533
mov eax, dword [rax + 0x10]
add eax, 0xffffffa7
cmp ax, 0x15
ja 0x1400a0533
movzx eax, ax
mov ecx, 0x208001
bt rcx, rax
jb 0x1400a0564
mov eax, dword [rbx + 0x98]
test rax, rax
je 0x1400a0564
mov rcx, qword [rbx + 0x90]
cmp dword [rcx + rax*4 - 4], 0
jle 0x1400a0564
mov rax, qword [rsi + 0x28]
or byte [rax - 4], 0x10
jmp 0x1400a0564
mov dword [rax - 0x1c], edx
cmp byte [r13 + 4], 2
je 0x1400a04c0
cmp byte [r15 + 0x44], 0x4b
jne 0x1400a05a3
mov rax, qword [r15 + 0x20]
cmp rax, 2
jb 0x1400a0585
mov rcx, qword [r15 + 0x18]
movzx eax, word [rcx + rax - 2]
cmp eax, 0x7b24
je 0x1400a059b
movzx eax, word [r15 + 0x10]
cmp rax, 0x17
ja 0x1400a05a3
mov ecx, 0xa80000
bt rcx, rax
jae 0x1400a05a3
mov rax, qword [rsi + 0x28]
or byte [rax - 4], 0x10
cmp byte [r13 + 4], 1
je 0x1400a0634
mov rax, qword [rsi + 0x28]
test byte [rax - 3], 0x40
jne 0x1400a0634
mov cl, byte [r15 + 0x44]
cmp cl, 0x13
je 0x1400a05e3
cmp cl, 0x4b
jne 0x1400a05eb
mov rdx, qword [r15 + 0x20]
cmp rdx, 2
jb 0x1400a05eb
mov rbp, qword [r15 + 0x18]
movzx edx, word [rbp + rdx - 2]
cmp edx, 0x7b24
jne 0x1400a05eb
jmp 0x1400a060d
cmp word [r15 + 0x10], 0x2e
je 0x1400a060d
movzx edx, word [r15 + 0x10]
cmp rdx, 0x17
ja 0x1400a0608
mov ebp, 0xa80000
bt rbp, rdx
jae 0x1400a0608
cmp cl, 0x3a
jne 0x1400a060d
jmp 0x1400a0634
cmp cl, 0x4a
jne 0x1400a0634
cmp byte [rbx + 0x44], 0x32
jne 0x1400a0624
mov ecx, 0x3000
and ecx, dword [r15 + 0x40]
cmp ecx, 0x2000
jne 0x1400a0634
mov ecx, dword [rsi]
add ecx, r14d
mov dword [rax - 0x30], ecx
mov rax, qword [rsi + 0x28]
or byte [rax - 4], 1
mov rax, qword [rsi + 0x28]
mov cl, byte [rax - 4]
movabs r12, 0x200000000801
movabs rbp, 0x1000000090000001
test cl, 4
je 0x1400a06cc
mov rdi, qword [rbx + 0xc8]
mov dl, byte [rbx + 0x44]
cmp dl, 0x10
jne 0x1400a066c
cmp byte [r13 + 0x61], 1
je 0x1400a067b
jmp 0x1400a0683
cmp dl, 0x44
jne 0x1400a0683
cmp byte [r13 + 0x1a3], 6
jne 0x1400a0683
or cl, 0x10
mov byte [rax - 4], cl
jmp 0x1400a06cc
cmp word [rdi + 0x10], 0x41
jne 0x1400a06cc
cmp word [rbx + 0x10], 4
jne 0x1400a06ac
cmp dl, 0x32
je 0x1400a0769
mov rdx, qword [rbx + 0xd0]
test rdx, rdx
je 0x1400a06cc
cmp dword [rdx + 0x48], 0
jne 0x1400a06cc
mov dl, byte [rdi + 0x44]
cmp dl, 0x1b
je 0x1400a06c2
cmp dl, 0x10
jne 0x1400a067b
cmp byte [r13 + 0x61], 1
jne 0x1400a067b
jmp 0x1400a06cc
cmp byte [r13 + 0x88], 1
jne 0x1400a067b
mov eax, dword [rbx + 0x10]
add eax, 0xffffffe7
cmp ax, 0x2d
ja 0x1400a0769
movzx eax, ax
bt r12, rax
jae 0x1400a0769
mov al, byte [rbx + 0x44]
lea ecx, [rax - 0x12]
cmp cl, 0x3c
ja 0x1400a0703
movzx ecx, cl
bt rbp, rcx
jae 0x1400a0703
cmp al, 0x2e
je 0x1400a0770
jmp 0x1400a0782
mov rcx, qword [rbx + 0xc8]
test rcx, rcx
je 0x1400a0782
mov al, byte [rcx + 0x44]
cmp al, 0x13
je 0x1400a072c
cmp al, 0x4b
jne 0x1400a0733
cmp qword [rcx + 0x20], 0
je 0x1400a0733
mov rdx, qword [rcx + 0x18]
cmp byte [rdx], 0x7d
jne 0x1400a0733
jmp 0x1400a0750
cmp word [rcx + 0x10], 0x33
je 0x1400a0750
movzx ecx, word [rcx + 0x10]
cmp rcx, 0x18
ja 0x1400a08c2
mov edx, 0x1500000
bt rdx, rcx
jae 0x1400a08c2
mov edi, dword [rsi]
mov rcx, r13
mov rdx, rsi
call fcn.14009f140
cmp edi, eax
jbe 0x1400a0769
mov rax, qword [rsi + 0x28]
or byte [rax - 3], 1
mov al, byte [rbx + 0x44]
cmp al, 0x2e
jne 0x1400a0782
cmp byte [r13 + 0x1a3], 3
jne 0x1400a0782
mov rax, qword [rsi + 0x28]
or byte [rax - 4], 0x10
mov eax, dword [rbx + 0x10]
add eax, 0xffffffe7
cmp ax, 0x2d
ja 0x1400a07b1
movzx eax, ax
bt r12, rax
jae 0x1400a07b1
mov al, byte [rbx + 0x44]
add al, 0xee
cmp al, 0x3c
ja 0x1400a0862
movzx eax, al
bt rbp, rax
jae 0x1400a0862
mov rdi, rbx
nop word cs:[rax + rax]
nop
mov rdi, qword [rdi + 0xc8]
test rdi, rdi
je 0x1400a092b
movzx ecx, word [rdi + 0x10]
cmp cx, 4
je 0x1400a07c0
cmp word [rbx + 0x10], 4
je 0x1400a092b
mov al, byte [rdi + 0x44]
cmp al, 6
jne 0x1400a089b
mov dl, 1
mov r8b, 1
call fcn.14015b120
cmp eax, 2
je 0x1400a092b
movzx ecx, word [rdi + 0x10]
mov dl, 1
mov r8b, 1
call fcn.14015b120
cmp eax, 0xa
je 0x1400a092b
movzx ecx, word [rdi + 0x10]
mov dl, 1
mov r8b, 1
call fcn.14015b120
cmp eax, 0xb
je 0x1400a092b
test byte [rdi + 0x40], 8
jne 0x1400a08cf
cmp word [rdi + 0x10], 0x2f
mov cl, 1
je 0x1400a08df
mov al, byte [rdi + 0x44]
cmp al, 0xa
je 0x1400a08d3
cmp al, 6
jne 0x1400a08dd
cmp byte [r13 + 0x4b], 0
jmp 0x1400a08d8
cmp word [r15 + 0x10], 0x16
jne 0x1400a07b1
mov rax, qword [r15 + 0xc0]
test rax, rax
je 0x1400a07b1
mov ecx, dword [r15 + 0x68]
sub ecx, dword [rax + 0x68]
cmp ecx, 0xb
jb 0x1400a07b1
mov rax, qword [rsi + 0x28]
or byte [rax - 4], 0x10
jmp 0x1400a07b1
cmp cx, 0x41
jne 0x1400a08b2
cmp al, 0x10
je 0x1400a092b
cmp al, 0x3e
je 0x1400a092b
jmp 0x1400a07f0
cmp al, 0xa
jne 0x1400a092b
cmp cx, 0x3d
je 0x1400a07f0
jmp 0x1400a092b
cmp al, 0x49
je 0x1400a0750
jmp 0x1400a0769
mov cl, 1
jmp 0x1400a08df
cmp byte [r13 + 0x60], 0
setne cl
jmp 0x1400a08df
xor ecx, ecx
cmp dword [rdi + 0xb4], 0
jne 0x1400a08f2
cmp qword [rdi + 0xb8], 0
je 0x1400a090d
xor eax, eax
test cl, cl
je 0x1400a0918
mov rax, qword [rsi + 0x28]
mov al, byte [rax - 4]
and al, 0x40
shr al, 6
xor cl, 1
or cl, al
je 0x1400a0923
jmp 0x1400a092b
cmp byte [rdi + 0x44], 0xa
setne al
test cl, cl
jne 0x1400a08f8
test al, al
je 0x1400a0923
cmp byte [r13 + 0x19], 0
jne 0x1400a092b
mov rax, qword [rsi + 0x28]
or byte [rax - 4], 0x20
add r14d, dword [rsi]
mov dword [rsi], r14d
movzx ecx, word [rbx + 0x10]
cmp cx, 4
je 0x1400a0a6c
movzx r8d, word [r15 + 0x10]
cmp r8w, 0x15
jne 0x1400a0a3c
mov rax, qword [r15 + 0xc8]
test rax, rax
je 0x1400a0a3c
mov edi, dword [rax + 0x10]
mov edx, edi
or edx, 2
cmp dx, 0x5b
jne 0x1400a0983
mov rax, qword [rsi + 0x28]
mov dword [rax - 0x2c], r14d
mov eax, dword [rsi]
mov rcx, qword [rsi + 0x28]
mov dword [rcx - 0x28], eax
jmp 0x1400a0bfa
mov r9, rbp
mov ebp, edi
mov rdx, rax
cmp bp, 4
jne 0x1400a09b9
nop word cs:[rax + rax]
nop dword [rax + rax]
mov rdx, qword [rdx + 0xc8]
test rdx, rdx
mov rbp, r9
je 0x1400a0a10
movzx ebp, word [rdx + 0x10]
cmp bp, 4
je 0x1400a09a0
movzx ebp, bp
cmp ebp, 0x9e
mov rbp, r9
jne 0x1400a0a10
mov rdx, qword [rdx + 0xc8]
test rdx, rdx
je 0x1400a0a10
movzx ebp, word [rdx + 0x10]
cmp bp, 4
jne 0x1400a09ee
mov rdx, qword [rdx + 0xc8]
test rdx, rdx
mov rbp, r9
jne 0x1400a09d3
jmp 0x1400a0a10
cmp bp, 0x5b
mov rbp, r9
jne 0x1400a0a10
jmp 0x1400a096d
mov rax, qword [rax + 0xc8]
test rax, rax
je 0x1400a0a3c
movzx edi, word [rax + 0x10]
cmp di, 4
je 0x1400a0a00
cmp di, 5
jne 0x1400a0a3c
mov rax, qword [rax + 0xc8]
test rax, rax
je 0x1400a0a3c
movzx edx, word [rax + 0x10]
cmp dx, 4
je 0x1400a0a1c
cmp dx, 0x5b
je 0x1400a096d
cmp cx, 4
je 0x1400a0a6c
cmp cx, 0x37
je 0x1400a0a6c
cmp r8w, 0x3d
je 0x1400a0b28
cmp r8w, 0x41
jne 0x1400a0a6c
mov al, 0x3e
cmp byte [r15 + 0x44], 0x3e
jne 0x1400a0b34
jmp 0x1400a0aef
mov al, byte [r15 + 0x44]
cmp al, 6
je 0x1400a0a8d
cmp al, 0xa
je 0x1400a0a8d
cmp al, 0xf
jne 0x1400a0aab
cmp byte [r13 + 0x61], 2
jne 0x1400a0a8d
mov rax, qword [rsi + 0x28]
mov dword [rax - 0x30], r14d
jmp 0x1400a0ae1
movzx ecx, word [r15 + 0x10]
mov dl, 1
mov r8b, 1
call fcn.14015b120
cmp eax, 2
jne 0x1400a0aba
cmp byte [rbx + 0x40], 0
js 0x1400a0ad6
mov al, byte [r15 + 0x44]
cmp al, 0x1a
jne 0x1400a0aef
mov eax, dword [rsi]
mov rcx, qword [rsi + 0x28]
mov dword [rcx - 0x30], eax
jmp 0x1400a0ae1
cmp word [r15 + 0x10], 0x2f
jne 0x1400a0ad6
cmp dword [r15 + 0xb4], 0
jne 0x1400a0ad6
cmp qword [r15 + 0xb8], 0
je 0x1400a0aa1
cmp byte [r13 + 0x4b], 0
jne 0x1400a0bfa
mov eax, dword [rsi]
mov rcx, qword [rsi + 0x28]
mov dword [rcx - 0x2c], eax
jmp 0x1400a0bfa
cmp byte [rbx + 0x44], 0x5b
jne 0x1400a0b03
mov eax, dword [rsi]
mov rcx, qword [rsi + 0x28]
mov dword [rcx - 0x1c], eax
jmp 0x1400a0bfa
cmp al, 0x13
je 0x1400a0b41
cmp al, 0x4b
jne 0x1400a0b49
mov rcx, qword [r15 + 0x20]
cmp rcx, 2
jb 0x1400a0b49
mov rdx, qword [r15 + 0x18]
movzx ecx, word [rdx + rcx - 2]
cmp ecx, 0x7b24
jne 0x1400a0b49
jmp 0x1400a0b67
mov al, byte [r15 + 0x44]
cmp al, 0x3a
jne 0x1400a0a70
mov rax, qword [rsi + 0x28]
mov dword [rax - 0x2c], r14d
jmp 0x1400a0bfa
cmp word [r15 + 0x10], 0x2e
je 0x1400a0b67
movzx ecx, word [r15 + 0x10]
cmp rcx, 0x17
ja 0x1400a0bf2
mov edx, 0xa80000
bt rdx, rcx
jae 0x1400a0bf2
mov rax, qword [r15 + 0xc0]
test rax, rax
je 0x1400a0bfa
nop word [rax + rax]
mov rax, qword [rax + 0xd0]
test rax, rax
je 0x1400a0bfa
movzx ecx, word [rax + 0x10]
cmp cx, 4
je 0x1400a0b80
add ecx, 0xffffffe7
cmp cx, 0x2d
ja 0x1400a0bfa
movzx ecx, cx
bt r12, rcx
jae 0x1400a0bfa
mov al, byte [rax + 0x44]
add al, 0xee
cmp al, 0x3c
ja 0x1400a0bba
movzx eax, al
bt rbp, rax
jb 0x1400a0bfa
mov rcx, qword [rsi + 0x20]
mov rbp, qword [rsi + 0x28]
mov rax, rbp
sub rax, rcx
sar rax, 3
movabs rdx, 0x6db6db6db6db6db7
imul rdx, rax
cmp rdx, 2
jb 0x1400a0bfa
imul rax, rdx, 0x38
cmp dword [rax + rcx - 0x44], 0
jne 0x1400a0bfa
mov eax, dword [rsi]
mov dword [rbp - 0x2c], eax
jmp 0x1400a0bfa
cmp al, 0x4a
je 0x1400a0b67
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret