Function at 0x14003c4a0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x60
mov r10, qword [rcx]
mov rbx, qword [rbp + 0x50]
xor eax, eax
mov rdi, rdx
mov edx, dword [rbx]
mov qword [rbp - 0x10], r10
cmp byte [r10], 0x28
mov r11, r8
mov dword [rbp - 0x1c], eax
mov dword [rbp - 0x18], edx
mov ecx, edx
mov dword [rbp - 0x20], edx
jne 0x14003c692
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
cmp al, 0x2a
jne 0x14003c504
add r10, 2
mov qword [rbp - 0x10], r10
mov ecx, edx
jmp 0x14003c68f
cmp al, 0x3f
je 0x14003c529
lea eax, [rdx + 1]
mov dword [rbx], eax
test r8, r8
jne 0x14003c51b
cmp eax, r9d
je 0x14003c961
mov r10, rcx
mov qword [rbp - 0x10], rcx
mov ecx, edx
jmp 0x14003c68f
movzx eax, byte [r10 + 2]
lea rcx, [r10 + 2]
cmp al, 0x7c
jne 0x14003c54d
add r10, 3
mov eax, 1
mov ecx, edx
mov qword [rbp - 0x10], r10
mov dword [rbp - 0x1c], eax
jmp 0x14003c692
cmp al, 0x23
jne 0x14003c581
add r10, 3
mov qword [rbp - 0x10], r10
movzx eax, byte [r10]
test al, al
je 0x14003c957
cmp al, 0x29
je 0x14003c957
inc r10
mov qword [rbp - 0x10], r10
movzx eax, byte [r10]
test al, al
jne 0x14003c565
jmp 0x14003c957
mov r10, rcx
mov qword [rbp - 0x10], rcx
cmp al, 0x28
jne 0x14003c5d6
cmp byte [rcx + 1], 0x3f
je 0x14003c4fd
movzx eax, byte [rcx]
test al, al
je 0x14003c4fd
cmp al, 0x29
je 0x14003c5bb
inc r10
mov qword [rbp - 0x10], r10
movzx eax, byte [r10]
test al, al
jne 0x14003c5a1
mov ecx, edx
jmp 0x14003c68f
cmp byte [r10], 0
mov eax, dword [rbp - 0x1c]
mov ecx, edx
je 0x14003c692
inc r10
mov qword [rbp - 0x10], r10
jmp 0x14003c692
cmp byte [rcx], 0x50
jne 0x14003c5e2
inc r10
mov qword [rbp - 0x10], r10
movzx ecx, byte [r10]
cmp cl, 0x3c
jne 0x14003c5f8
movzx eax, byte [r10 + 1]
cmp al, 0x21
je 0x14003c5f8
cmp al, 0x3d
jne 0x14003c601
cmp cl, 0x27
jne 0x14003c4fd
lea eax, [rdx + 1]
mov dword [rbx], eax
test r8, r8
jne 0x14003c614
cmp eax, r9d
je 0x14003c961
movzx ecx, byte [r10]
inc r10
mov eax, 0x3e
cmp ecx, 0x3c
mov qword [rbp - 0x10], r10
mov rdx, r10
cmove ecx, eax
movzx eax, byte [r10]
cmp eax, ecx
je 0x14003c64f
nop word [rax + rax]
inc r10
mov qword [rbp - 0x10], r10
movzx eax, byte [r10]
cmp eax, ecx
jne 0x14003c640
test r8, r8
je 0x14003c68c
mov rcx, r10
movsxd r8, r9d
sub rcx, rdx
cmp r8, rcx
jne 0x14003c68c
mov rcx, r11
call fcn.1400325e2
test eax, eax
jne 0x14003c680
mov eax, dword [rbx]
mov rbx, qword [rsp + 0x88]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret
mov r10, qword [rbp - 0x10]
mov r11, qword [rbp + 0x30]
mov r9d, dword [rbp + 0x38]
mov ecx, dword [rbp - 0x20]
mov eax, dword [rbp - 0x1c]
cmp r10, qword [rdi + 0x38]
jae 0x14003c957
mov esi, dword [rbp + 0x48]
movsxd r8, eax
mov qword [rbp - 8], r8
movzx eax, byte [r10]
cmp al, 0x5c
jne 0x14003c701
inc r10
mov qword [rbp - 0x10], r10
movzx eax, byte [r10]
test al, al
je 0x14003c957
cmp al, 0x51
jne 0x14003c7f2
nop dword [rax]
inc r10
mov qword [rbp - 0x10], r10
movzx eax, byte [r10]
test al, al
je 0x14003c957
cmp al, 0x5c
jne 0x14003c6d0
test al, al
je 0x14003c957
inc r10
mov qword [rbp - 0x10], r10
cmp byte [r10], 0x45
jne 0x14003c6d0
jmp 0x14003c7f2
cmp al, 0x5b
jne 0x14003c817
xor ebx, ebx
nop dword [rax + rax]
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
cmp al, 0x5c
jne 0x14003c754
add r10, 2
cmp byte [r10], 0x45
jne 0x14003c72d
mov qword [rbp - 0x10], r10
jmp 0x14003c710
lea rdx, [0x1400c4ba8]
mov r8d, 3
mov rcx, r10
call fcn.1400325e2
mov r10, qword [rbp - 0x10]
test eax, eax
jne 0x14003c76a
add r10, 4
mov qword [rbp - 0x10], r10
jmp 0x14003c710
test ebx, ebx
jne 0x14003c76a
cmp al, 0x5e
jne 0x14003c76a
mov ebx, 1
mov r10, rcx
mov qword [rbp - 0x10], rcx
jmp 0x14003c710
cmp byte [r10 + 1], 0x5d
lea rax, [r10 + 1]
jne 0x14003c780
test dword [rdi + 0x78], 0x2000000
cmove r10, rax
inc r10
mov qword [rbp - 0x10], r10
movzx eax, byte [r10]
cmp al, 0x5d
je 0x14003c7ee
nop
test al, al
je 0x14003c95e
cmp al, 0x5c
jne 0x14003c7df
inc r10
mov qword [rbp - 0x10], r10
movzx eax, byte [r10]
test al, al
je 0x14003c957
cmp al, 0x51
jne 0x14003c7df
inc r10
mov qword [rbp - 0x10], r10
movzx eax, byte [r10]
test al, al
je 0x14003c957
cmp al, 0x5c
jne 0x14003c7b3
test al, al
je 0x14003c957
inc r10
mov qword [rbp - 0x10], r10
cmp byte [r10], 0x45
jne 0x14003c7b3
inc r10
mov qword [rbp - 0x10], r10
movzx eax, byte [r10]
cmp al, 0x5d
jne 0x14003c790
mov rbx, qword [rbp + 0x50]
inc r10
mov qword [rbp - 0x10], r10
cmp r10, qword [rdi + 0x38]
jae 0x14003c957
mov ecx, dword [rbp - 0x20]
mov r8, qword [rbp - 8]
mov r11, qword [rbp + 0x30]
mov r9d, dword [rbp + 0x38]
jmp 0x14003c6a6
mov edx, dword [rbp + 0x40]
test edx, edx
je 0x14003c8f1
cmp al, 0x23
jne 0x14003c8f1
inc r10
mov qword [rbp - 0x10], r10
movzx r8d, byte [r10]
test r8b, r8b
je 0x14003c957
nop
mov edx, dword [rdi + 0x8c]
test edx, edx
je 0x14003c88e
mov r8, qword [rdi + 0x38]
cmp r10, r8
jae 0x14003c8bc
lea r9, [rdi + 0x90]
mov rcx, r10
mov dword [rsp + 0x20], esi
call fcn.14004eca0
mov r10, qword [rbp - 0x10]
test eax, eax
je 0x14003c8bc
mov eax, dword [rdi + 0x90]
dec eax
cdqe
add r10, rax
mov qword [rbp - 0x10], r10
cmp byte [r10], 0
je 0x14003c957
jmp 0x14003c7f2
movsxd rdx, dword [rdi + 0x90]
mov rcx, qword [rdi + 0x38]
sub rcx, rdx
cmp r10, rcx
ja 0x14003c8bc
cmp r8b, byte [rdi + 0x94]
jne 0x14003c8bc
cmp edx, 1
je 0x14003c86e
movzx eax, byte [rdi + 0x95]
cmp byte [r10 + 1], al
je 0x14003c86e
inc r10
mov qword [rbp - 0x10], r10
test esi, esi
je 0x14003c8e2
movzx eax, byte [r10]
and al, 0xc0
cmp al, 0x80
jne 0x14003c8e2
inc r10
mov qword [rbp - 0x10], r10
movzx eax, byte [r10]
and al, 0xc0
cmp al, 0x80
je 0x14003c8d1
movzx r8d, byte [r10]
test r8b, r8b
jne 0x14003c840
jmp 0x14003c957
cmp al, 0x28
jne 0x14003c924
mov qword [rsp + 0x30], rbx
lea rcx, [rbp - 0x10]
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], edx
mov r8, r11
mov rdx, rdi
call fcn.14003c4a0
test eax, eax
jg 0x14003c961
mov r10, qword [rbp - 0x10]
cmp byte [r10], 0
je 0x14003c957
jmp 0x14003c7f2
cmp al, 0x29
je 0x14003c94b
cmp al, 0x7c
jne 0x14003c7f2
test r8, r8
je 0x14003c7f2
cmp dword [rbx], ecx
mov eax, dword [rbp - 0x18]
cmovg ecx, dword [rbx]
mov dword [rbx], eax
mov dword [rbp - 0x20], ecx
jmp 0x14003c7f2
cmp dword [rbp - 0x1c], 0
je 0x14003c957
cmp dword [rbx], ecx
jge 0x14003c957
mov dword [rbx], ecx
mov rax, qword [rbp + 0x20]
mov qword [rax], r10
or eax, 0xffffffff
mov rbx, qword [rsp + 0x88]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret