Function at 0x1400c8aa0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov eax, dword [rdx + 0x30]
mov ebx, r9d
mov rbp, qword [rdx + 8]
movzx r12d, r8b
imul rdi, rax, 0x38
mov rsi, qword [rbp + 0xd0]
mov r14, rdx
add rdi, qword [rdx + 0x28]
mov r13, rcx
cmp byte [rcx + 0x184], 0
jne 0x1400c8ba2
movzx eax, byte [rcx + 0x185]
cmp al, 1
je 0x1400c8aff
cmp al, 6
jne 0x1400c8ba2
mov rax, rsi
test rsi, rsi
je 0x1400c8ba2
nop dword [rax + rax]
cmp word [rax + 0x10], 4
jne 0x1400c8b25
mov rax, qword [rax + 0xd0]
test rax, rax
jne 0x1400c8b10
jmp 0x1400c8ba2
cmp word [rax + 0x10], 0x15
jne 0x1400c8ba2
movzx ecx, word [rbp + 0x10]
cmp cx, 4
je 0x1400c8ba2
cmp cx, 0x15
je 0x1400c8ba2
cmp byte [rbp + 0x44], 0x44
je 0x1400c8ba2
mov ecx, dword [rax + 0x68]
test ecx, ecx
je 0x1400c8ba2
cmp ecx, 1
ja 0x1400c8b9d
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x1400c8ba2
mov rax, qword [rcx]
call qword [rax + 0x28]
test rax, rax
je 0x1400c8ba2
mov rax, qword [rax + 0xd8]
test rax, rax
je 0x1400c8ba2
nop
cmp word [rax + 0x10], 4
jne 0x1400c8b85
mov rax, qword [rax + 0xd8]
test rax, rax
jne 0x1400c8b70
jmp 0x1400c8ba2
cmp byte [rax + 0x44], 0x44
je 0x1400c8ba2
movzx eax, word [rax + 0x10]
mov ecx, 0xffdf
sub ax, 0x17
test cx, ax
je 0x1400c8ba2
mov byte [r14 + 0x20], 1
cmp word [rbp + 0x10], 0x3f
jne 0x1400c8c12
mov rax, qword [r14 + 0x78]
mov rcx, qword [rax]
cmp word [rcx + 0x10], 0x59
je 0x1400c8bc0
cmp dword [rbp + 0x80], 0
jne 0x1400c8c12
cmp dword [rdi - 8], 0
jne 0x1400c8c12
mov rax, qword [rsi + 0xd0]
test rax, rax
je 0x1400c8bd8
cmp byte [rax + 0x44], 0x22
je 0x1400c8c12
mov eax, dword [r14]
mov rcx, rsi
mov dword [rdi - 8], eax
mov r8d, dword [rcx + 0x58]
mov edx, eax
cmp eax, r8d
jb 0x1400c8c06
sub eax, r8d
mov dword [rdi - 8], eax
mov edx, eax
cmp dword [rcx + 0x60], 0
jne 0x1400c8c06
mov rcx, qword [rcx + 0xd0]
test rcx, rcx
jne 0x1400c8be1
test dword [rsi + 0x40], 0x400
je 0x1400c8c12
mov dword [rdi - 0x2c], edx
add ebx, dword [rbp + 0x60]
xor r15d, r15d
cmp byte [r13 + 0x155], 1
mov edx, r15d
mov dword [rsp + 0x80], ebx
jne 0x1400c8c6b
cmp word [rsi + 0x10], 0x42
jne 0x1400c8c6b
mov r8d, dword [r14 + 0x74]
test r8d, r8d
je 0x1400c8c6b
mov rax, qword [r14 + 0x78]
cmp rsi, qword [rax]
jne 0x1400c8c6b
mov ecx, dword [rax + 0x20]
cmp ecx, 6
je 0x1400c8c52
cmp ecx, 1
jne 0x1400c8c6b
add ebx, r8d
mov eax, 0xffffffff
cmp byte [r13 + 0x340], dl
mov dword [rsp + 0x80], ebx
cmovne edx, eax
test r12b, r12b
jne 0x1400c8ca1
mov ecx, dword [r14]
mov r9d, ebx
mov rax, qword [r14 + 0x78]
add ecx, edx
add ecx, ebx
xor r8d, r8d
mov rdx, rbp
movzx eax, byte [rax + 0x42]
mov byte [rsp + 0x30], al
mov byte [rsp + 0x28], r15b
mov dword [rsp + 0x20], ecx
mov rcx, qword [r13 + 0x380]
call fcn.1400c71e0
cmp byte [r13 + 0xa8], 1
jne 0x1400c8cb5
cmp byte [rbp + 0x44], 0x34
jne 0x1400c8cb5
or byte [rdi - 4], 0x20
cmp byte [r13 + 0xa8], 2
jne 0x1400c8cc9
cmp byte [rsi + 0x44], 0x34
jne 0x1400c8cc9
or byte [rdi - 4], 0x20
cmp byte [rbp + 0x44], 0x67
jne 0x1400c8d13
movzx edx, byte [rdi - 3]
test dl, 8
jne 0x1400c8d13
mov ecx, dword [rbp + 0x58]
add ecx, dword [r14]
mov r8d, dword [r13 + 0xb0]
add ecx, ebx
add r8d, dword [r14 + 0x74]
mov eax, dword [rbp + 0x8c]
mov r9d, dword [rdi - 0x30]
test eax, eax
jne 0x1400c8d01
and dl, 0xfb
mov byte [rdi - 3], dl
jmp 0x1400c8d13
cmp r8d, r9d
cmovb r8d, r9d
add eax, r8d
cmp eax, ecx
cmova ecx, eax
mov dword [rdi - 0x1c], ecx
movzx eax, byte [r13 + 8]
sub al, 2
cmp al, 1
ja 0x1400c8def
movzx eax, word [rsi + 0x10]
cmp ax, 0x15
je 0x1400c8d62
cmp byte [rsi + 0x44], 0x71
je 0x1400c8d62
cmp ax, 0x13
je 0x1400c8d62
cmp ax, 0x17
jne 0x1400c8def
mov eax, dword [rsi + 0x40]
and eax, 0x18000
cmp eax, 0x8000
je 0x1400c8def
cmp byte [r13 + 0xb4], r15b
je 0x1400c8def
mov rbx, qword [rsi + 0xd0]
test rbx, rbx
je 0x1400c8dae
mov dl, 1
mov rcx, rbx
call fcn.1400b0ff0
test al, al
je 0x1400c8d86
cmp byte [r13 + 8], 2
sete al
jmp 0x1400c8daa
cmp byte [rbx + 0x44], 0xc
je 0x1400c8da8
movzx eax, word [rbx + 0x10]
sub ax, 0x59
cmp ax, 0x15
ja 0x1400c8da4
mov ecx, 0x208001
bt ecx, eax
jb 0x1400c8da8
mov al, 1
jmp 0x1400c8daa
xor al, al
test al, al
je 0x1400c8de8
mov rdx, r14
mov rcx, r13
call fcn.1400cb220
cmp dword [r14], eax
jbe 0x1400c8de8
cmp dword [rbp + 0xa0], r15d
jbe 0x1400c8de8
mov ecx, dword [rbp + 0xa0]
mov rax, qword [rbp + 0x98]
mov ebx, dword [rsp + 0x80]
cmp dword [rax + rcx*4 - 4], r15d
jle 0x1400c8def
or byte [rdi - 4], 0x20
jmp 0x1400c8def
mov ebx, dword [rsp + 0x80]
cmp byte [rsi + 0x44], 0x72
jne 0x1400c8e38
mov rcx, qword [rsi + 0x20]
cmp rcx, 2
jb 0x1400c8e1d
mov rax, qword [rsi + 0x18]
cmp byte [rax + rcx - 2], 0x24
jne 0x1400c8e11
cmp byte [rax + rcx - 1], 0x7b
je 0x1400c8e18
sbb r15d, r15d
or r15d, 1
test r15d, r15d
je 0x1400c8e34
movzx ecx, word [rsi + 0x10]
mov edx, 0xfff9
lea eax, [rcx - 0x13]
test dx, ax
jne 0x1400c8e38
cmp cx, 0x19
je 0x1400c8e38
or byte [rdi - 4], 0x20
cmp byte [r13 + 8], 1
je 0x1400c8e97
cmp byte [rdi - 3], 0
jl 0x1400c8e97
mov rcx, rsi
call fcn.1400b39a0
test al, al
je 0x1400c8e97
movzx ecx, byte [rsi + 0x44]
cmp cl, 0x55
je 0x1400c8e97
cmp cl, 0x62
je 0x1400c8e97
cmp byte [rbp + 0x130], 0
je 0x1400c8e71
cmp byte [rsi + 0x130], 0
jne 0x1400c8e97
cmp byte [rbp + 0x44], 0x46
jne 0x1400c8e8b
mov eax, dword [rsi + 0x40]
and eax, 0x18000
cmp eax, 0x10000
je 0x1400c8e8b
cmp cl, 0x82
jne 0x1400c8e97
mov ecx, dword [r14]
add ecx, ebx
or byte [rdi - 4], 1
mov dword [rdi - 0x30], ecx
movzx r9d, byte [rdi - 4]
test r9b, 8
je 0x1400c8eb9
mov rdx, r13
mov rcx, rbp
call fcn.1400cee20
test al, al
je 0x1400c8eb9
or r9b, 0x20
mov byte [rdi - 4], r9b
mov rcx, rbp
call fcn.1400cee90
test al, al
je 0x1400c8ed9
mov rdx, r14
mov rcx, r13
call fcn.1400cb220
cmp dword [r14], eax
jbe 0x1400c8ed9
or byte [rdi - 3], 2
cmp byte [rbp + 0x44], 0x74
jne 0x1400c8eed
cmp byte [r13 + 0x185], 3
jne 0x1400c8eed
or byte [rdi - 4], 0x20
movzx eax, word [rbp + 0x10]
sub ax, 0x19
cmp ax, 0x2d
ja 0x1400c8f3d
movabs rcx, 0x200000000801
bt rcx, rax
jae 0x1400c8f3d
movzx eax, byte [rbp + 0x44]
cmp al, 0x22
je 0x1400c8f3d
cmp al, 0x74
je 0x1400c8f3d
cmp al, 0x45
je 0x1400c8f3d
cmp word [rsi + 0x10], 0x16
jne 0x1400c8f3d
mov rcx, qword [rsi + 0xc8]
test rcx, rcx
je 0x1400c8f3d
mov eax, dword [rsi + 0x70]
sub eax, dword [rcx + 0x70]
cmp eax, 0xa
jbe 0x1400c8f3d
or byte [rdi - 4], 0x20
mov rbx, qword [rbp + 0xd0]
test rbx, rbx
je 0x1400c8f63
nop dword [rax]
cmp word [rbx + 0x10], 4
jne 0x1400c8f63
mov rbx, qword [rbx + 0xd0]
test rbx, rbx
jne 0x1400c8f50
cmp word [rbp + 0x10], 4
je 0x1400c906f
test rbx, rbx
je 0x1400c906f
movzx eax, byte [rbx + 0x44]
cmp al, 7
je 0x1400c8f9b
cmp word [rbx + 0x10], 0x41
je 0x1400c8f9b
cmp al, 0xf
jne 0x1400c906f
cmp word [rbx + 0x10], 0x3d
jne 0x1400c906f
jmp 0x1400c8fab
cmp al, 0x59
je 0x1400c906f
cmp al, 0x1f
je 0x1400c906f
mov eax, dword [rbx + 0x48]
test eax, eax
jne 0x1400c8fc2
movzx ecx, word [rbx + 0x10]
mov r8b, 1
movzx edx, r8b
call fcn.140191860
cmp eax, 2
je 0x1400c906f
mov eax, dword [rbx + 0x48]
test eax, eax
jne 0x1400c8fe2
movzx ecx, word [rbx + 0x10]
mov r8b, 1
movzx edx, r8b
call fcn.140191860
cmp eax, 0xa
je 0x1400c906f
mov eax, dword [rbx + 0x48]
test eax, eax
jne 0x1400c9002
movzx ecx, word [rbx + 0x10]
mov r8b, 1
movzx edx, r8b
call fcn.140191860
cmp eax, 0xb
je 0x1400c906f
test byte [rbx + 0x40], 8
jne 0x1400c9032
cmp word [rbx + 0x10], 0x2f
je 0x1400c9032
movzx eax, byte [rbx + 0x44]
cmp al, 7
jne 0x1400c9023
cmp byte [r13 + 0x79], 0
jne 0x1400c9032
cmp al, 0xf
jne 0x1400c902e
cmp byte [r13 + 0x7d], 0
jne 0x1400c9032
xor al, al
jmp 0x1400c9034
mov al, 1
cmp dword [rbx + 0xbc], 0
jne 0x1400c9051
cmp qword [rbx + 0xc0], 0
jne 0x1400c9051
cmp byte [rbx + 0x44], 0xf
je 0x1400c9051
mov cl, 1
jmp 0x1400c9053
xor cl, cl
test al, al
jne 0x1400c9061
test cl, cl
je 0x1400c906b
cmp byte [r13 + 0x27], al
je 0x1400c906b
cmp byte [rdi - 4], 0
jl 0x1400c906f
test al, al
je 0x1400c906f
or byte [rdi - 4], 0x40
mov ebx, dword [r14]
add ebx, dword [rsp + 0x80]
mov dword [r14], ebx
movzx r15d, word [rbp + 0x10]
cmp r15w, 4
je 0x1400c9157
cmp word [rsi + 0x10], 0x15
jne 0x1400c90bf
mov rcx, qword [rsi + 0xd0]
test rcx, rcx
je 0x1400c90bf
cmp word [rcx + 0x10], 0x59
je 0x1400c90b1
mov dl, 1
call fcn.1400b0ff0
test al, al
je 0x1400c90bf
mov dword [rdi - 0x2c], ebx
mov eax, dword [r14]
mov dword [rdi - 0x28], eax
jmp 0x1400c9228
cmp r15w, 0x37
je 0x1400c9157
movzx eax, word [rsi + 0x10]
cmp ax, 0x41
jne 0x1400c9147
cmp byte [rsi + 0x44], 0x59
jne 0x1400c9225
movzx eax, byte [rsi + 0x44]
cmp al, 0xf
je 0x1400c9225
cmp al, 7
jne 0x1400c91a1
mov eax, dword [rsi + 0x48]
test eax, eax
jne 0x1400c9109
movzx ecx, word [rsi + 0x10]
mov r8b, 1
movzx edx, r8b
call fcn.140191860
cmp eax, 2
je 0x1400c9128
cmp word [rsi + 0x10], 0x2f
jne 0x1400c9131
cmp dword [rsi + 0xbc], 0
jne 0x1400c9131
cmp qword [rsi + 0xc0], 0
jne 0x1400c9131
test dword [rbp + 0x40], 0x100
je 0x1400c91a1
cmp byte [r13 + 0x79], 0
jne 0x1400c9228
mov eax, dword [r14]
mov dword [rdi - 0x2c], eax
jmp 0x1400c9228
cmp ax, 0x3d
jne 0x1400c9157
cmp byte [rsi + 0x44], 0x55
je 0x1400c9225
movzx eax, byte [rsi + 0x44]
cmp al, 0x1e
jne 0x1400c90e2
cmp r15w, 4
jne 0x1400c9188
cmp byte [rbp + 0x44], 0x46
je 0x1400c917e
mov rax, qword [rbp + 0xd8]
test rax, rax
je 0x1400c917e
cmp dword [rax + 0x4c], 0
jbe 0x1400c9188
cmp dword [rbp + 0x4c], 0
jbe 0x1400c9225
cmp byte [r13 + 0x7e], 2
jne 0x1400c9225
mov dword [rdi - 0x30], ebx
mov eax, dword [r14]
mov dword [rdi - 0x2c], eax
jmp 0x1400c9228
cmp byte [rsi + 0x44], 0x34
jne 0x1400c91b5
mov eax, dword [r14]
mov dword [rdi - 0x30], eax
mov eax, dword [r14]
mov dword [rdi - 0x2c], eax
jmp 0x1400c9228
cmp byte [rbp + 0x44], 0x18
jne 0x1400c91c3
mov eax, dword [r14]
mov dword [rdi - 0x1c], eax
jmp 0x1400c9228
mov rcx, rsi
call fcn.1400b39a0
test al, al
je 0x1400c9228
mov rcx, qword [rsi + 0xc8]
test rcx, rcx
je 0x1400c9228
mov rcx, qword [rcx + 0xd8]
test rcx, rcx
je 0x1400c9228
cmp word [rcx + 0x10], 4
jne 0x1400c91fc
mov rcx, qword [rcx + 0xd8]
test rcx, rcx
jne 0x1400c91e7
jmp 0x1400c9228
call fcn.1400b1370
test al, al
je 0x1400c9228
mov eax, dword [r14 + 0x30]
cmp eax, 1
jbe 0x1400c9228
imul rcx, rax, 0x38
mov rax, qword [r14 + 0x28]
cmp dword [rcx + rax - 0x44], 0
jne 0x1400c9228
mov eax, dword [r14]
mov dword [rdi - 0x2c], eax
jmp 0x1400c9228
mov dword [rdi - 0x2c], ebx
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret