Function at 0x14009fbc0
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r15, rdx
mov r10, qword [rdx + 8]
mov rdi, qword [r10 + 0xc8]
test rdi, rdi
sete bl
mov rbp, rdi
je 0x14009fc06
nop dword [rax]
cmp word [rbp + 0x10], 4
jne 0x14009fc06
mov rbp, qword [rbp + 0xc8]
test rbp, rbp
sete bl
jne 0x14009fbf0
mov r12, rdi
nop dword [rax]
mov r12, qword [r12 + 0xd0]
test r12, r12
je 0x14009fc28
cmp word [r12 + 0x10], 4
je 0x14009fc10
jmp 0x14009fc2b
mov r12, r10
mov rax, qword [r15 + 0x28]
mov dl, byte [rax - 4]
xor r9d, r9d
test dl, dl
mov esi, 0xf
cmovs esi, r9d
or dl, 0x80
mov byte [rax - 4], dl
mov rax, qword [r15 + 8]
add esi, dword [rax + 0x80]
cmp word [r12 + 0x10], 0x2f
mov qword [rsp + 0x40], r10
jne 0x14009fc6c
mov rax, qword [r15 + 0x28]
cmp dword [rax - 0x24], 0
je 0x14009fe3c
mov r14d, r8d
mov rdx, r15
mov r13, rcx
call fcn.14009f140
mov dword [r15], eax
mov ecx, eax
sub ecx, dword [r15 + 0x3c]
jbe 0x14009fc8f
imul ecx, dword [r13 + 0x218]
add esi, ecx
mov r10, rdi
mov r11, r13
mov r13, qword [rsp + 0x40]
cmp byte [r13 + 0x44], 0x2e
je 0x14009fd1d
cmp byte [r11 + 0x1a3], 4
jne 0x14009fd16
test rbp, rbp
je 0x14009fd16
cmp dword [r13 + 0x78], 0
jne 0x14009fd16
cmp word [rbp + 0x10], 0x3f
jne 0x14009fd16
mov rcx, qword [r11 + 0x290]
mov rdx, qword [rcx + 0x70]
mov r8, qword [rcx + 0x98]
test rdx, rdx
je 0x14009fcf3
mov ecx, dword [r13 + 0x10]
xor edi, edi
cmp cx, 1
je 0x14009fcee
add ecx, 0xfffffff9
cmp cx, 0xc
jb 0x14009fcee
mov rdi, qword [r13 + 8]
cmp rdi, rdx
je 0x14009fd1d
test r8, r8
je 0x14009fd16
mov ecx, dword [r13 + 0x10]
xor edx, edx
cmp cx, 1
je 0x14009fd11
add ecx, 0xfffffff9
cmp cx, 0xc
jb 0x14009fd11
mov rdx, qword [r13 + 8]
cmp rdx, r8
je 0x14009fd1d
mov rcx, qword [r15 + 0x28]
mov dword [rcx - 0x28], eax
mov eax, dword [r12 + 0x10]
add eax, 0xffffffe7
cmp ax, 0x2d
ja 0x14009fdb3
movzx eax, ax
movabs rcx, 0x200000000801
bt rcx, rax
jae 0x14009fdb3
mov al, byte [r12 + 0x44]
lea ecx, [rax - 0x12]
cmp cl, 0x3c
ja 0x14009fe6a
movzx ecx, cl
movabs rdx, 0x1000000090000001
bt rdx, rcx
jae 0x14009fe6a
cmp al, 0x44
jne 0x14009fdbc
mov rax, qword [r15 + 0x28]
mov dl, byte [rax - 3]
test dl, 4
jne 0x14009fe28
mov ecx, dword [r12 + 0x84]
test ecx, ecx
je 0x14009fe81
mov rdx, qword [r15 + 0x40]
cmp dword [rdx + 0x20], 3
je 0x14009fe8e
cmp byte [r11 + 0x184], 0
jne 0x14009fe8e
lea rdx, [rax - 0x30]
jmp 0x14009fead
mov al, byte [r12 + 0x44]
cmp al, 0x44
je 0x14009fd6e
test bl, 1
jne 0x14009fedd
cmp word [rbp + 0x10], 0x3d
jne 0x14009fec1
mov al, byte [rbp + 0x44]
cmp al, 0x3a
je 0x14009fddf
cmp al, 0x13
jne 0x14009fec1
mov rax, qword [r15 + 0x20]
mov rdi, qword [r15 + 0x28]
mov rdx, rdi
sub rdx, rax
sar rdx, 3
movabs rcx, 0x6db6db6db6db6db7
imul rcx, rdx
cmp rcx, 2
jb 0x14009fec1
mov edx, dword [rdi - 0x30]
mov edi, dword [rdi - 0x2c]
cmp edi, edx
cmovb edi, edx
add edi, dword [r11 + 0x90]
imul rcx, rcx, 0x38
mov dword [rcx + rax - 0x64], edi
jmp 0x14009fec1
test dl, 2
je 0x14009fe87
mov ecx, dword [r12 + 0x50]
cmp dword [rax - 0x1c], ecx
ja 0x14009fe87
add ecx, dword [r15]
jmp 0x14009feb9
mov r14d, r8d
mov r8d, dword [rcx + 0x64]
mov edx, 0xaaaaaaab
imul rdx, r8
shr rdx, 0x21
cmp dword [r15], edx
jbe 0x14009fe5f
test byte [rax - 4], 8
je 0x14009fc6f
add esi, dword [rcx + 0x204]
jmp 0x14009fc6f
mov rax, qword [r15 + 0x28]
cmp dword [rax - 0xc], 0
jne 0x14009fe87
mov ecx, dword [r15]
mov dword [rax - 0xc], ecx
test bl, 1
jne 0x14009fedd
jmp 0x14009fec1
and dl, 0xfd
mov byte [rax - 3], dl
test bl, 1
jne 0x14009fedd
jmp 0x14009fec1
mov edx, dword [r11 + 0x90]
add edx, dword [r15 + 0x3c]
mov dword [rsp + 0x3c], edx
cmp dword [rax - 0x30], edx
lea rdi, [rax - 0x30]
lea rdx, [rsp + 0x3c]
cmovae rdx, rdi
mov edi, dword [r12 + 0x50]
cmp ecx, edi
cmovb ecx, edi
add ecx, dword [rdx]
mov dword [rax - 0x1c], ecx
test bl, 1
jne 0x14009fedd
movzx eax, word [rbp + 0x10]
cmp ax, 0x41
je 0x14009fed1
cmp ax, 0x3e
jne 0x14009fedd
mov rax, qword [r15 + 0x28]
mov cl, byte [rax - 4]
test cl, 4
je 0x14009feeb
cmp byte [r10 + 0x44], 6
jne 0x14009fef1
mov rax, qword [r15 + 0x28]
mov cl, byte [rax - 4]
and cl, 0xf7
mov byte [rax - 4], cl
test bl, 1
je 0x14009ff01
cmp word [r12 + 0x10], 0x3c
je 0x14009ff3d
jmp 0x14009ff23
mov al, byte [rbp + 0x44]
cmp al, 0x49
je 0x14009ff0c
cmp al, 0x1f
jne 0x14009ff13
cmp dword [r13 + 0x78], 0
je 0x14009ff2c
cmp word [r12 + 0x10], 0x3c
je 0x14009ff3d
cmp word [rbp + 0x10], 0x3c
je 0x14009ff3d
cmp byte [r13 + 0x44], 6
je 0x14009ff4c
jmp 0x14009ff5b
mov rax, qword [r15 + 0x28]
and byte [rax - 4], 0xf7
cmp word [r12 + 0x10], 0x3c
jne 0x14009ff1c
mov rax, qword [r15 + 0x28]
or byte [rax - 4], 8
cmp byte [r13 + 0x44], 6
jne 0x14009ff5b
test byte [r13 + 0x40], 0x20
je 0x14009ff5b
mov rax, qword [r15 + 0x28]
and byte [rax - 4], 0xf7
test r14b, r14b
jne 0x14009fff3
mov eax, dword [r11 + 0x1e8]
add eax, 1
cmp word [r13 + 0x10], 0x18
jne 0x14009ff91
mov rcx, qword [r13 + 0xc0]
test rcx, rcx
je 0x14009ff91
cmp dword [rcx + 0xe0], 0
mov ecx, 1
cmovne eax, ecx
mov ecx, dword [r13 + 0x48]
cmp eax, ecx
cmovb ecx, eax
test ecx, ecx
mov r8d, 1
cmovne r8d, ecx
mov rax, qword [r15 + 0x40]
cmp byte [rax + 0x38], 0
je 0x14009ffbc
mov r14, r10
cmp dword [rax + 0x20], 1
setne al
jmp 0x14009ffc1
mov r14, r10
xor eax, eax
mov rcx, qword [r11 + 0x2a0]
mov rdx, qword [r15 + 0x28]
mov dl, byte [rdx - 4]
and dl, 1
mov r9d, dword [r15]
mov byte [rsp + 0x30], al
mov byte [rsp + 0x28], dl
mov dword [rsp + 0x20], r9d
mov rdx, r13
mov rdi, r11
call fcn.1400a94f0
mov r11, rdi
mov r10, r14
cmp word [r13 + 0x10], 4
jne 0x1400a0014
cmp byte [r13 + 0x44], 0x32
je 0x1400a002e
mov rax, qword [r13 + 0xd0]
test rax, rax
je 0x1400a002e
cmp dword [rax + 0x48], 0
jne 0x1400a002e
mov eax, dword [r15]
mov rcx, qword [r15 + 0x28]
mov dword [rcx - 0x2c], eax
cmp word [r13 + 0x10], 0x2f
jne 0x1400a002e
mov rax, qword [r15 + 0x28]
add dword [rax - 0x2c], 3
mov eax, dword [r13 + 0x78]
mov dword [r15 + 0x14], eax
mov eax, dword [r13 + 0x78]
mov dword [r15 + 0x18], eax
mov al, byte [r11 + 0x1a3]
mov ecx, eax
and cl, 0xfb
cmp cl, 1
je 0x1400a0089
cmp word [r13 + 0x10], 0x18
jne 0x1400a0089
mov rcx, qword [r15 + 0x20]
mov rdi, qword [r15 + 0x28]
sub rdi, rcx
sar rdi, 3
movabs rdx, 0x6db6db6db6db6db7
imul rdx, rdi
cmp rdx, 2
jb 0x1400a0089
imul rdx, rdx, 0x38
test byte [rdx + rcx - 0x3b], 0x10
jne 0x1400a014e
cmp al, 5
jne 0x1400a00c3
cmp word [r13 + 0x10], 0x18
jne 0x1400a00c3
mov rax, qword [r15 + 0x28]
sub rax, qword [r15 + 0x20]
sar rax, 3
movabs rcx, 0x6db6db6db6db6db7
imul rcx, rax
cmp rcx, 2
jb 0x1400a00c3
cmp byte [r11 + 0x1f5], 0
je 0x1400a014e
mov rax, qword [r15 + 0x20]
mov rcx, qword [r15 + 0x28]
sub rcx, rax
shr rcx, 3
imul edx, ecx, 0xb6db6db7
add edx, 0xffffffff
je 0x1400a014e
or byte [rax + 0x34], 8
cmp edx, 1
je 0x1400a014e
mov r8d, edx
add r8, 0xffffffffffffffff
mov ecx, 1
cmp edx, 2
je 0x1400a013b
mov rdx, r8
and rdx, 0xfffffffffffffffe
neg rdx
mov ecx, 1
xor edi, edi
nop dword [rax + rax]
mov rax, qword [r15 + 0x20]
or byte [rax + rdi + 0x6c], 8
mov rax, qword [r15 + 0x20]
or byte [rax + rdi + 0xa4], 8
add rdi, 0x70
lea rax, [rdx + rcx]
add rax, 2
add rcx, 2
cmp rax, 1
jne 0x1400a0110
test r8b, 1
je 0x1400a014e
mov rax, qword [r15 + 0x20]
imul rcx, rcx, 0x38
or byte [rax + rcx + 0x34], 8
test bl, 1
jne 0x1400a027f
mov eax, dword [rbp + 0x10]
mov ecx, eax
add ecx, 0xffffffc3
cmp cx, 2
jae 0x1400a01ba
cmp byte [rbp + 0x44], 0
je 0x1400a0277
cmp ax, 0x2e
jne 0x1400a027f
mov al, byte [r11 + 0x1a3]
cmp al, 8
je 0x1400a0277
cmp al, 6
jne 0x1400a027f
cmp dword [rbp + 0x78], 0
jne 0x1400a0277
mov rax, qword [rbp + 0xc8]
test rax, rax
je 0x1400a027f
cmp word [rax + 0x10], 0x3f
je 0x1400a0277
jmp 0x1400a027f
cmp ax, 0x41
jne 0x1400a01cf
cmp byte [rbp + 0x44], 0
jne 0x1400a027f
jmp 0x1400a0277
mov cl, byte [rbp + 0x44]
cmp cl, 0x1e
jle 0x1400a01f7
cmp cl, 0x1f
je 0x1400a026d
cmp cl, 0x31
je 0x1400a026d
cmp cl, 0x49
jne 0x1400a0201
cmp dword [r13 + 0x78], 0
jne 0x1400a0201
jmp 0x1400a026d
cmp cl, 6
je 0x1400a026d
cmp cl, 0x15
je 0x1400a026d
cmp byte [r13 + 0x44], 6
je 0x1400a026d
cmp cl, 0x13
je 0x1400a0248
cmp cl, 0x4b
jne 0x1400a022d
mov rdx, qword [rbp + 0x20]
cmp rdx, 2
jb 0x1400a022d
mov rbx, qword [rbp + 0x18]
movzx edx, word [rbx + rdx - 2]
cmp edx, 0x7b24
je 0x1400a026d
cmp ax, 0x17
ja 0x1400a0241
movzx edx, ax
mov ebx, 0xa80000
bt rbx, rdx
jb 0x1400a026d
cmp cl, 0x4a
jne 0x1400a0261
jmp 0x1400a026d
cmp ax, 0x2e
ja 0x1400a0261
movzx ecx, ax
movabs rdx, 0x400000a80000
bt rdx, rcx
jb 0x1400a026d
mov rax, qword [r15 + 0x28]
or byte [rax - 4], 8
movzx eax, word [rbp + 0x10]
cmp ax, 0x17
jne 0x1400a0165
mov rax, qword [r15 + 0x28]
or byte [rax - 4], 2
mov rax, qword [r15 + 0x28]
mov cl, byte [rax - 4]
test cl, 4
je 0x1400a031c
mov r9b, byte [r10 + 0x44]
mov edx, r9d
xor dl, 0xf
mov bl, byte [r11 + 0x61]
xor bl, 2
or bl, dl
sete r8b
mov edx, dword [r10 + 0x10]
or edx, 2
cmp dx, 0x17
jne 0x1400a02e5
cmp byte [r11 + 0x1d], 0
je 0x1400a02f8
cmp byte [r11 + 0x1b], 0
jne 0x1400a02cb
mov rdx, qword [r15 + 0x40]
cmp byte [rdx + 0x39], 0
je 0x1400a0302
cmp byte [r11 + 0x1c], 0
sete dl
cmp r9b, 0x13
je 0x1400a0302
and dl, r8b
jne 0x1400a0302
test r8b, r8b
jne 0x1400a030d
jmp 0x1400a031c
cmp r9b, 6
setne dl
mov ebx, r8d
xor bl, 1
test dl, bl
je 0x1400a02b3
jmp 0x1400a0302
mov rdx, qword [r15 + 0x40]
cmp byte [rdx + 0x39], 0
je 0x1400a02ba
or cl, 8
mov byte [rax - 4], cl
test r8b, r8b
je 0x1400a031c
cmp byte [r11 + 0x1c], 0
je 0x1400a031c
mov rax, qword [r15 + 0x28]
and byte [rax - 4], 0xf7
mov eax, esi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret