Function at 0x1400c9250
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov eax, dword [rdx + 0x30]
mov r15, rcx
mov rbp, qword [rdx + 8]
movzx r13d, r8b
imul rdi, rax, 0x38
mov rcx, qword [rbp + 0xd0]
mov r14, rdx
add rdi, qword [rdx + 0x28]
mov rbx, rcx
mov qword [rsp + 0x80], rcx
test rcx, rcx
je 0x1400c92b3
nop dword [rax]
cmp word [rbx + 0x10], 4
jne 0x1400c92b3
mov rbx, qword [rbx + 0xd0]
test rbx, rbx
jne 0x1400c92a0
mov rsi, qword [rcx + 0xd8]
test rsi, rsi
je 0x1400c92d6
nop
cmp word [rsi + 0x10], 4
jne 0x1400c92d3
mov rsi, qword [rsi + 0xd8]
test rsi, rsi
jne 0x1400c92c0
test rsi, rsi
movzx ecx, byte [rdi - 3]
cmove rsi, rbp
movzx eax, cl
mov r12d, 0xf
or al, 1
mov byte [rdi - 3], al
test cl, 1
mov eax, 0
cmovne r12d, eax
mov rax, qword [rdx + 8]
add r12d, dword [rax + 0x88]
cmp word [rsi + 0x10], 0x2f
jne 0x1400c9330
cmp dword [rdi - 0x24], 0
jne 0x1400c9330
mov eax, 0xaaaaaaab
mul dword [r15 + 0x84]
shr edx, 1
cmp dword [r14], edx
jbe 0x1400c9329
test byte [rdi - 4], 0x10
je 0x1400c9330
add r12d, dword [r15 + 0x238]
mov rdx, r14
mov rcx, r15
call fcn.1400cb220
mov ecx, dword [r14 + 0x74]
mov edx, eax
mov dword [r14], eax
cmp eax, ecx
jbe 0x1400c9355
sub eax, ecx
imul eax, dword [r15 + 0x250]
add r12d, eax
cmp byte [rbp + 0x44], 0x74
je 0x1400c93da
cmp byte [r15 + 0x185], 4
jne 0x1400c93d7
cmp dword [rbp + 0x80], 0
jne 0x1400c93d7
test rbx, rbx
je 0x1400c93d7
cmp word [rbx + 0x10], 0x3f
jne 0x1400c93d7
mov rax, qword [r15 + 0x370]
mov r8, qword [rax + 0x78]
mov r9, qword [rax + 0xa0]
test r8, r8
je 0x1400c93aa
movzx ecx, word [rbp + 0x10]
lea eax, [rcx - 7]
cmp ax, 0xb
jbe 0x1400c93aa
cmp cx, 1
je 0x1400c93aa
cmp r8, qword [rbp + 8]
je 0x1400c93da
movzx eax, word [rbp + 0x10]
test r9, r9
je 0x1400c93d7
cmp ax, 0xf
je 0x1400c93d7
cmp ax, 6
jbe 0x1400c93c5
cmp ax, 0x13
jb 0x1400c93d7
cmp ax, 0xf
je 0x1400c93d7
cmp ax, 1
je 0x1400c93d7
cmp r9, qword [rbp + 8]
je 0x1400c93da
mov dword [rdi - 0x28], edx
movzx eax, word [rsi + 0x10]
sub ax, 0x19
cmp ax, 0x2d
ja 0x1400c9416
movabs rcx, 0x200000000801
bt rcx, rax
jae 0x1400c9416
movzx eax, byte [rsi + 0x44]
cmp al, 0x22
je 0x1400c9416
cmp al, 0x74
je 0x1400c9416
cmp al, 0x45
je 0x1400c9416
cmp dword [rdi - 0xc], 0
jne 0x1400c9481
mov eax, dword [r14]
mov dword [rdi - 0xc], eax
jmp 0x1400c9481
cmp byte [rsi + 0x44], 0x67
jne 0x1400c9488
movzx eax, byte [rdi - 3]
test al, 8
jne 0x1400c946f
mov r8d, dword [rsi + 0x8c]
test r8d, r8d
jne 0x1400c9437
and al, 0xfb
mov byte [rdi - 3], al
jmp 0x1400c9481
mov rdx, qword [r14 + 0x78]
mov rcx, r15
mov edx, dword [rdx + 0x20]
call fcn.1400ced80
mov ecx, dword [rdi - 0x30]
test al, al
je 0x1400c945d
mov edx, dword [r15 + 0xb0]
add edx, dword [r14 + 0x74]
cmp ecx, edx
cmovb ecx, edx
cmp r8d, dword [rsi + 0x58]
cmovb r8d, dword [rsi + 0x58]
add r8d, ecx
mov dword [rdi - 0x1c], r8d
jmp 0x1400c9481
test al, 4
je 0x1400c9481
mov ecx, dword [rsi + 0x58]
cmp dword [rdi - 0x1c], ecx
ja 0x1400c9481
add ecx, dword [r14]
mov dword [rdi - 0x1c], ecx
test rbx, rbx
je 0x1400c94dc
jmp 0x1400c94c6
test rbx, rbx
je 0x1400c94dc
cmp word [rbx + 0x10], 0x3d
jne 0x1400c94c6
movzx eax, byte [rbx + 0x44]
cmp al, 0x55
je 0x1400c94a0
cmp al, 0x23
jne 0x1400c94c6
mov ecx, dword [r14 + 0x30]
cmp ecx, 1
jbe 0x1400c94c6
mov edx, dword [rdi - 0x2c]
cmp edx, dword [rdi - 0x30]
mov rax, qword [r14 + 0x28]
cmovb edx, dword [rdi - 0x30]
add edx, dword [r15 + 0xb0]
imul rcx, rcx, 0x38
mov dword [rcx + rax - 0x64], edx
movzx eax, word [rbx + 0x10]
cmp ax, 0x41
je 0x1400c94d6
cmp ax, 0x3e
jne 0x1400c94dc
test byte [rdi - 4], 8
je 0x1400c94ea
mov rax, qword [rsp + 0x80]
cmp byte [rax + 0x44], 7
jne 0x1400c94ee
and byte [rdi - 4], 0xef
test rbx, rbx
je 0x1400c9515
movzx eax, byte [rbx + 0x44]
cmp al, 0x70
je 0x1400c9508
cmp al, 0x39
je 0x1400c9508
test dword [rbx + 0x40], 0x2000
je 0x1400c9515
cmp dword [rbp + 0x80], 0
jne 0x1400c9515
and byte [rdi - 4], 0xef
cmp word [rsi + 0x10], 0x3c
je 0x1400c9528
test rbx, rbx
je 0x1400c952c
cmp word [rbx + 0x10], 0x3c
jne 0x1400c952c
or byte [rdi - 4], 0x10
cmp byte [rbp + 0x44], 7
jne 0x1400c953c
test byte [rbp + 0x40], 0x40
je 0x1400c953c
and byte [rdi - 4], 0xef
test r13b, r13b
jne 0x1400c95d0
mov eax, dword [r15 + 0x1e0]
mov r8d, 1
inc eax
cmp word [rbp + 0x10], 0x18
mov edx, eax
mov dword [rsp + 0x40], eax
jne 0x1400c957e
mov rcx, qword [rbp + 0xc8]
test rcx, rcx
je 0x1400c957e
cmp dword [rcx + 0xf0], 0
je 0x1400c957e
mov dword [rsp + 0x40], r8d
mov edx, r8d
cmp edx, dword [rbp + 0x4c]
lea rax, [rbp + 0x4c]
lea rcx, [rsp + 0x40]
cmovae rcx, rax
mov rax, qword [r14 + 0x78]
cmp dword [rcx], r8d
cmova r8d, dword [rcx]
cmp byte [rax + 0x40], 0
je 0x1400c95a9
cmp dword [rax + 0x20], 1
je 0x1400c95a9
mov cl, 1
jmp 0x1400c95ab
xor cl, cl
movzx eax, byte [rdi - 4]
mov rdx, rbp
mov r9d, dword [r14]
and al, 1
mov byte [rsp + 0x30], cl
mov rcx, qword [r15 + 0x380]
mov byte [rsp + 0x28], al
mov dword [rsp + 0x20], r9d
call fcn.1400c71e0
cmp word [rbp + 0x10], 4
jne 0x1400c95ef
cmp byte [rbp + 0x44], 0x46
je 0x1400c95f5
mov rax, qword [rbp + 0xd8]
test rax, rax
je 0x1400c95f5
cmp dword [rax + 0x4c], 0
ja 0x1400c95f5
mov eax, dword [r14]
mov dword [rdi - 0x2c], eax
cmp word [rbp + 0x10], 0x2f
jne 0x1400c9600
add dword [rdi - 0x2c], 3
mov eax, dword [rbp + 0x80]
mov dword [r14 + 0x14], eax
mov eax, dword [rbp + 0x80]
mov dword [r14 + 0x18], eax
movzx edx, byte [r15 + 0x185]
cmp dl, 1
je 0x1400c966a
cmp dl, 6
je 0x1400c964e
cmp word [rbp + 0x10], 0x18
jne 0x1400c966a
mov eax, dword [r14 + 0x30]
cmp eax, 1
jbe 0x1400c966a
imul rcx, rax, 0x38
mov rax, qword [r14 + 0x28]
test byte [rcx + rax - 0x3b], 0x20
jne 0x1400c9720
cmp dl, 6
jne 0x1400c966a
cmp word [rbp + 0x10], 0x18
jne 0x1400c966a
cmp dword [r14 + 0x30], 1
jbe 0x1400c966a
cmp byte [r15 + 0x208], 0
je 0x1400c9720
mov r9, qword [rbp + 0xc8]
test r9, r9
je 0x1400c9681
cmp byte [r9 + 0x44], 0x65
je 0x1400c9720
mov eax, dword [r14 + 0x30]
mov rcx, qword [r14 + 0x28]
imul r10, rax, 0x38
mov rdx, rcx
add r10, rcx
cmp byte [r15 + 0x184], 1
lea rax, [r10 - 0x38]
jne 0x1400c9704
test r9, r9
je 0x1400c9704
cmp byte [r9 + 0x44], 0x43
jne 0x1400c9704
mov rax, r10
cmp r10, rcx
je 0x1400c96c8
cmp qword [rax - 0x38], 0
lea rdx, [rax - 0x38]
jne 0x1400c96c8
mov rax, rdx
cmp rdx, rcx
jne 0x1400c96b5
cmp rax, rcx
je 0x1400c9701
add rax, 0xffffffffffffffc8
cmp rax, rcx
je 0x1400c96f3
nop word [rax + rax]
cmp qword [rax - 0x38], 0
lea rdx, [rax - 0x38]
jne 0x1400c96f3
mov rax, rdx
cmp rdx, rcx
jne 0x1400c96e0
mov rdx, rcx
cmp rax, rcx
je 0x1400c9704
add rax, 0xffffffffffffffc8
jmp 0x1400c9704
mov rdx, rcx
cmp rax, rdx
je 0x1400c9720
lea rcx, [rax - 4]
nop dword [rax]
or byte [rcx], 0x10
lea rcx, [rcx - 0x38]
lea rax, [rcx + 4]
cmp rax, rdx
jne 0x1400c9710
test rbx, rbx
je 0x1400c982f
movzx ecx, word [rbx + 0x10]
mov edx, 0xfffa
lea eax, [rcx - 0x3d]
test dx, ax
jne 0x1400c9744
cmp cx, 0x42
jne 0x1400c97eb
movzx ecx, byte [rbx + 0x44]
cmp cl, 0x70
je 0x1400c9756
test dword [rbx + 0x40], 0x2000
je 0x1400c9763
cmp dword [rbp + 0x80], 0
je 0x1400c97eb
lea eax, [rcx - 7]
cmp al, 0x3e
ja 0x1400c977a
movabs rdx, 0x4004001000000001
bt rdx, rax
jb 0x1400c97eb
cmp byte [rbp + 0x44], 7
je 0x1400c97eb
cmp cl, 0x72
jne 0x1400c97b0
mov rdx, qword [rbx + 0x20]
cmp rdx, 2
jb 0x1400c97bc
mov rax, qword [rbx + 0x18]
cmp byte [rax + rdx - 2], 0x24
jne 0x1400c97a5
cmp byte [rax + rdx - 1], 0x7b
jne 0x1400c97a5
xor eax, eax
jmp 0x1400c97aa
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1400c97bc
jmp 0x1400c97eb
cmp cl, 0x23
jne 0x1400c97bc
cmp word [rbx + 0x10], 0x2e
je 0x1400c97eb
movzx edx, word [rbx + 0x10]
mov r8d, 0xfff9
lea eax, [rdx - 0x13]
test r8w, ax
jne 0x1400c97d5
cmp dx, 0x19
jne 0x1400c97eb
cmp cl, 0x71
je 0x1400c97eb
cmp byte [r15 + 0x70], 0
je 0x1400c97e7
cmp byte [rbp + 0x44], 0x43
je 0x1400c97eb
or byte [rdi - 4], 0x10
cmp word [rbx + 0x10], 0x17
je 0x1400c9807
cmp byte [rbx + 0x44], 0
je 0x1400c9807
mov rdx, r15
mov rcx, rbx
call fcn.1400ce080
test al, al
je 0x1400c980b
or byte [rdi - 4], 2
cmp word [rbx + 0x10], 0x15
jne 0x1400c982f
cmp byte [r15 + 8], 3
mov eax, 4
mov ecx, 0
cmove ecx, eax
movzx eax, byte [rdi - 4]
and al, 0xfb
or cl, al
mov byte [rdi - 4], cl
test byte [rdi - 4], 8
je 0x1400c98ce
test rbx, rbx
je 0x1400c984f
cmp byte [rbx + 0x44], 0x1e
jne 0x1400c984f
cmp byte [r15 + 0x7e], 2
jne 0x1400c984f
mov dl, 1
jmp 0x1400c9851
xor dl, dl
movzx eax, byte [r15 + 0x22a]
mov r9d, 0xfffd
mov rcx, qword [rsp + 0x80]
sub al, 3
cmp al, 1
setbe r8b
movzx eax, word [rcx + 0x10]
sub ax, 0x15
test r9w, ax
je 0x1400c9887
cmp byte [rcx + 0x44], 7
je 0x1400c9887
test dl, dl
je 0x1400c98b8
cmp byte [r15 + 0x31], 0
jne 0x1400c9898
mov rax, qword [r14 + 0x78]
cmp byte [rax + 0x43], 0
jne 0x1400c98b8
cmp byte [r15 + 0x30], 0
jne 0x1400c98a9
mov rax, qword [r14 + 0x78]
cmp byte [rax + 0x43], 0
je 0x1400c98b8
test r8b, r8b
jne 0x1400c98b2
test dl, dl
jne 0x1400c98b8
cmp byte [rcx + 0x44], 0x23
jne 0x1400c98bc
or byte [rdi - 4], 0x10
test dl, dl
je 0x1400c98ce
mov eax, r12d
test r8b, r8b
je 0x1400c98d1
and byte [rdi - 4], 0xef
jmp 0x1400c98d1
mov eax, r12d
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret