Function at 0x14008378c
Capabilities:
Parse credit card information

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
mov rbp, rsp
sub rsp, 0x60
mov rbx, qword [rcx]
mov rsi, rdx
mov rdx, qword [rbp + 0x50]
mov r11d, dword [rdx]
mov r10, r8
xor r8d, r8d
mov eax, r11d
mov qword [rbp - 0x10], rbx
cmp word [rbx], 0x28
mov dword [rbp - 0x20], eax
mov dword [rbp - 0x1c], r11d
mov dword [rbp - 0x18], r8d
jne 0x14008381e
lea rcx, [rbx + 2]
cmp word [rcx], 0x2a
jne 0x1400837f6
add rbx, 4
jmp 0x1400837ea
cmp word [rbx], 0x29
je 0x14008381e
add rbx, 2
mov qword [rbp - 0x10], rbx
cmp rbx, qword [rsi + 0x38]
jb 0x1400837e0
jmp 0x14008381e
cmp word [rcx], 0x3f
je 0x14008388e
lea eax, [r11 + 1]
mov dword [rdx], eax
test r10, r10
jne 0x140083814
cmp eax, r9d
je 0x140083c35
mov rbx, rcx
mov qword [rbp - 0x10], rcx
mov eax, r11d
movsxd r8, dword [rbp - 0x18]
mov qword [rbp - 8], r8
cmp rbx, qword [rsi + 0x38]
jae 0x140083c2b
cmp word [rbx], 0x5c
jne 0x1400839d5
add rbx, 2
xor r9d, r9d
mov qword [rbp - 0x10], rbx
cmp word [rbx], r9w
je 0x140083c2b
cmp word [rbx], 0x51
jne 0x140083bf4
add rbx, 2
mov qword [rbp - 0x10], rbx
cmp word [rbx], r9w
je 0x140083c2b
cmp word [rbx], 0x5c
jne 0x140083859
cmp word [rbx], r9w
je 0x140083c2b
add rbx, 2
mov qword [rbp - 0x10], rbx
cmp word [rbx], 0x45
jne 0x140083859
jmp 0x140083bf4
lea rax, [rbx + 4]
cmp word [rax], 0x7c
jne 0x1400838ac
add rbx, 6
mov dword [rbp - 0x18], 1
mov qword [rbp - 0x10], rbx
jmp 0x14008381b
cmp word [rax], 0x23
jne 0x1400838d7
add rbx, 6
jmp 0x1400838c6
cmp ax, 0x29
je 0x140083c2b
add rbx, 2
mov qword [rbp - 0x10], rbx
movzx eax, word [rbx]
test ax, ax
jne 0x1400838b8
jmp 0x140083c2b
cmp word [rax], 0x28
mov rbx, rax
mov qword [rbp - 0x10], rax
jne 0x14008392b
cmp word [rax + 2], 0x3f
je 0x14008381b
movzx eax, word [rax]
test ax, ax
je 0x14008381b
cmp ax, 0x29
je 0x140083911
add rbx, 2
mov qword [rbp - 0x10], rbx
movzx eax, word [rbx]
test ax, ax
jne 0x1400838fb
mov eax, r11d
cmp word [rbx], r8w
je 0x14008381e
add rbx, 2
mov qword [rbp - 0x10], rbx
jmp 0x14008381e
cmp word [rax], 0x50
jne 0x140083939
add rbx, 2
mov qword [rbp - 0x10], rbx
movzx eax, word [rbx]
cmp ax, 0x3c
jne 0x140083950
cmp word [rbx + 2], 0x21
je 0x140083950
cmp word [rbx + 2], 0x3d
jne 0x14008395a
cmp ax, 0x27
jne 0x14008381b
inc r11d
mov dword [rdx], r11d
test r10, r10
jne 0x140083972
cmp r11d, r9d
jne 0x140083972
mov eax, r11d
jmp 0x140083c35
add rbx, 2
mov qword [rbp - 0x10], rbx
cmp ax, 0x3c
jne 0x140083985
mov eax, 0x3e
mov rdx, rbx
movzx ecx, ax
jmp 0x140083995
add rbx, 2
mov qword [rbp - 0x10], rbx
movzx eax, word [rbx]
cmp eax, ecx
jne 0x14008398d
test r10, r10
je 0x1400839c6
mov rax, rbx
sub rax, rdx
sar rax, 1
cmp r9d, eax
jne 0x1400839c6
mov r8d, r9d
mov rcx, r10
call fcn.1400842b0
test eax, eax
je 0x14008396a
mov r9d, dword [rbp + 0x38]
mov r10, qword [rbp + 0x30]
mov eax, dword [rbp - 0x20]
mov rdx, qword [rbp + 0x50]
mov r11d, eax
jmp 0x14008381e
cmp word [rbx], 0x5b
jne 0x140083ac3
xor r9d, r9d
mov r11d, r9d
lea rax, [rbx + 2]
cmp word [rax], 0x5c
jne 0x140083a25
lea rcx, [rbx + 4]
cmp word [rcx], 0x45
jne 0x140083a02
mov rbx, rcx
mov qword [rbp - 0x10], rcx
jmp 0x1400839e5
lea rdx, [0x1400c5ae8]
mov r8d, 3
call fcn.140023fe8
xor r9d, r9d
test eax, eax
jne 0x140083a3f
add rbx, 8
mov qword [rbp - 0x10], rbx
jmp 0x1400839e5
test r11d, r11d
jne 0x140083a3f
cmp word [rax], 0x5e
jne 0x140083a3f
mov r11d, 1
mov rbx, rax
mov qword [rbp - 0x10], rax
jmp 0x1400839e5
lea rax, [rbx + 2]
cmp word [rax], 0x5d
jne 0x140083aad
test dword [rsi + 0x7c], 0x2000000
cmove rbx, rax
jmp 0x140083aad
test ax, ax
je 0x140083c32
cmp ax, 0x5c
jne 0x140083aad
add rbx, 2
mov qword [rbp - 0x10], rbx
cmp word [rbx], r9w
je 0x140083c2b
cmp word [rbx], 0x51
jne 0x140083aad
add rbx, 2
mov qword [rbp - 0x10], rbx
cmp word [rbx], r9w
je 0x140083c2b
cmp word [rbx], 0x5c
jne 0x140083a7d
cmp word [rbx], r9w
je 0x140083c2b
add rbx, 2
mov qword [rbp - 0x10], rbx
cmp word [rbx], 0x45
jne 0x140083a7d
add rbx, 2
mov qword [rbp - 0x10], rbx
movzx eax, word [rbx]
cmp ax, 0x5d
jne 0x140083a56
jmp 0x140083bf4
mov ecx, dword [rbp + 0x40]
test ecx, ecx
je 0x140083ba3
cmp word [rbx], 0x23
jne 0x140083ba3
add rbx, 2
xor r9d, r9d
jmp 0x140083b8e
mov edx, dword [rsi + 0x94]
test edx, edx
je 0x140083b35
mov r8, qword [rsi + 0x38]
cmp rbx, r8
jae 0x140083b67
mov eax, dword [rbp + 0x48]
lea r9, [rsi + 0x98]
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.1400236f4
xor r9d, r9d
test eax, eax
je 0x140083b67
mov eax, dword [rsi + 0x98]
dec eax
cdqe
lea rbx, [rbx + rax*2]
mov qword [rbp - 0x10], rbx
cmp word [rbx], r9w
je 0x140083c2b
jmp 0x140083bf4
movsxd rdx, dword [rsi + 0x98]
mov rax, rdx
imul rax, rax, 0xfffffffffffffffe
add rax, qword [rsi + 0x38]
cmp rbx, rax
ja 0x140083b67
cmp cx, word [rsi + 0x9c]
jne 0x140083b67
cmp edx, 1
je 0x140083b14
movzx eax, word [rsi + 0x9e]
cmp word [rbx + 2], ax
je 0x140083b14
add rbx, 2
mov qword [rbp - 0x10], rbx
cmp dword [rbp + 0x48], r9d
je 0x140083b92
movzx eax, word [rbx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x140083b92
add rbx, 2
mov qword [rbp - 0x10], rbx
movzx ecx, word [rbx]
test cx, cx
jne 0x140083ae4
jmp 0x140083c2b
cmp word [rbx], 0x28
jne 0x140083bd8
mov eax, dword [rbp + 0x48]
mov qword [rsp + 0x30], rdx
mov r8, r10
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rcx, [rbp - 0x10]
mov rdx, rsi
call fcn.14008378c
xor r9d, r9d
test eax, eax
jg 0x140083c35
mov rbx, qword [rbp - 0x10]
jmp 0x140083b26
cmp word [rbx], 0x29
je 0x140083c1e
cmp word [rbx], 0x7c
jne 0x140083bf4
test r8, r8
je 0x140083bf4
cmp dword [rdx], eax
cmovg eax, dword [rdx]
mov dword [rdx], r11d
mov dword [rbp - 0x20], eax
add rbx, 2
mov qword [rbp - 0x10], rbx
cmp rbx, qword [rsi + 0x38]
jae 0x140083c2b
mov rdx, qword [rbp + 0x50]
mov eax, dword [rbp - 0x20]
mov r8, qword [rbp - 8]
mov r9d, dword [rbp + 0x38]
mov r10, qword [rbp + 0x30]
mov r11d, dword [rbp - 0x1c]
jmp 0x140083830
xor ecx, ecx
cmp dword [rbp - 0x18], ecx
je 0x140083c2b
cmp dword [rdx], eax
jge 0x140083c2b
mov dword [rdx], eax
mov rax, qword [rbp + 0x20]
mov qword [rax], rbx
or eax, 0xffffffff
add rsp, 0x60
pop rsi
pop rbx
pop rbp
ret