Function at 0x1401c1740
Capabilities:
Parse credit card information

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x118
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x90], 0xfffffffffffffffe
mov rdi, rcx
mov rbx, qword [rcx]
lea rsi, [rcx + 8]
mov dword [rsp + 0x20], 0x1743d11e
lea rcx, [rbp + 0x88]
mov r8d, 0x6d97c4d8
mov r9d, 0x1c850bf8
call fcn.1401c4db0
movzx eax, word [rbx + 0x30]
movzx edx, word [rbx + 0x32]
add edx, dword [0x14051d6b8]
shl edx, 0x10
or edx, eax
mov dword [rsp + 0x20], 0xf2abdd38
lea rcx, [rbp - 0x18]
mov r8d, 0x66398fe9
mov r9d, 0xb9e121ba
call fcn.1401c4e50
lea rcx, [rbp + 0x38]
mov rdx, rsi
call fcn.1401e1020
mov qword [rbp + 0x38], 8
movzx ecx, word [rbp + 0x88]
mov r8d, 0xd39d90de
lea rax, [fcn.1401c1740]
lea r9d, [rax + rax]
add r9d, 0x22c0
nop word cs:[rax + rax]
mov edx, dword [0x14051d6a8]
lea eax, [rdx - 1]
imul eax, edx
mov r10d, dword [0x1404d3acc]
add r10d, r8d
xor edx, edx
div r10d
test edx, edx
jne 0x1401c1831
movsxd r12, dword [0x1403f3b00]
mov eax, dword [0x14051d6ac]
cmp eax, 0x5e
jle 0x1401c186f
mov eax, dword [0x1403f3b00]
mov eax, dword [0x1404d3acc]
mov edx, eax
xor edx, 0xd39d90dd
mov r10d, eax
and r10d, 0x539d90dd
lea edx, [rdx + r10*2]
and edx, r9d
mov r10d, eax
xor r10d, 0xd39d90dc
and eax, 0x539d90dc
lea eax, [r10 + rax*2]
cmp edx, eax
jne 0x1401c1800
jmp 0x1401c181f
mov eax, dword [0x14051d6a8]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
nop
mov eax, dword [0x14051d6ac]
cmp eax, 0x47
jg 0x1401c1880
mov r13d, dword [0x1403f3b04]
lea rdx, [rbp + 0x40]
lea rax, [0x1403f3ca8]
mov qword [rbp - 0x58], rax
mov word [rbp - 0x50], cx
lea r14, [rbp - 0x58]
mov qword [rbp - 0x20], r14
mov rcx, r14
call fcn.1401c31a0
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x1401c18d1
cmp rcx, r14
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400f5c95.0]
lea rcx, [rbp - 0x18]
lea rdx, [rbp + 0x38]
call fcn.1401c3d00
mov r14d, dword [0x1404d3a04]
mov eax, dword [0x1404d3acc]
lea r15d, [rax + r14]
add r15d, 0xd39d90dd
mov dword [0x1404d3a04], r15d
xor r15d, r14d
not r15d
test r15d, r14d
jne 0x1401c194c
movabs rcx, 0x1106c256c341a84f
mov rdx, rcx
sub rdx, r12
lea rax, [0x1403f3b00]
sub rax, rdx
add rax, rcx
mov ecx, dword [0x14051d6ac]
cmp ecx, 0x50
nop
mov ecx, dword [0x14051d6a8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x1401c1930
xor ecx, ecx
test r13d, r13d
jg 0x1401c19e8
xor r12d, r12d
lea rcx, [rbp - 0x18]
call fcn.1401e0c50
lea rcx, [fcn.1401c1740]
lea r8d, [rcx + rcx]
add r8d, 0x4da0
nop word [rax + rax]
mov ecx, dword [0x1404d3acc]
lea edx, [rcx - 0x2c626f23]
mov r9d, r8d
xor r9d, edx
not r9d
and r9d, edx
add ecx, 0xd39d90dc
cmp r9d, ecx
jne 0x1401c19b8
xor ecx, ecx
test r15d, r14d
sete r9b
mov rdx, qword [0x1403f3b08]
mov r10d, dword [0x14051d6a8]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
je 0x1401c19d2
mov rcx, qword [0x1403f3b08]
mov ecx, dword [0x14051d6a8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x1401c1970
jmp 0x1401c1993
mov cl, r9b
mov r8d, dword [0x14051d6ac]
cmp r8d, 0x3d
jg 0x1401c1a70
jmp 0x1401c1a5c
mov edx, 0xd39d912c
xor r8d, r8d
xor r12d, r12d
jmp 0x1401c1a04
mov r9, qword [rax + r10]
movsxd r10, r8d
mov r9, qword [rax + r10]
test cl, cl
jne 0x1401c1a00
xor r12, r9
add r8d, 8
nop word cs:[rax + rax]
mov r9d, dword [0x14051d6ac]
cmp r9d, 0x2f
jg 0x1401c1a43
mov r9d, dword [0x14051d6ac]
mov r10d, dword [0x1404d3acc]
add r10d, edx
cmp r9d, r10d
jl 0x1401c1a52
mov r9d, dword [0x14051d6ac]
cmp r9d, 0xc
jge 0x1401c1a20
jmp 0x1401c1a2d
cmp r8d, r13d
jl 0x1401c1a04
jmp 0x1401c194f
mov r8d, dword [0x14051d6ac]
cmp r8d, 0x3a
jl 0x1401c1a7f
nop dword [rax]
mov r8d, dword [0x14051d6ac]
cmp r8d, 0x56
jge 0x1401c1a70
jmp 0x1401c1a5c
neg rcx
mov r8d, dword [0x14051d6ac]
sub rdx, r12
nop dword [rax]
mov r8d, dword [0x14051d6a8]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
jne 0x1401c1a90
and rcx, rdx
mov rdx, rcx
shr rdx, 0x20
or edx, ecx
mov ecx, dword [0x14051d6ac]
mov r8d, 0xd39d910d
add r8d, dword [0x1404d3acc]
cmp ecx, r8d
jge 0x1401c1ad0
mov cl, 1
test cl, cl
jne 0x1401c1ae6
nop
mov ecx, dword [0x14051d6a8]
lea r8d, [rcx - 1]
imul r8d, ecx
test r8b, 1
jne 0x1401c1ad0
jmp 0x1401c1ac9
mov ecx, dword [0x14051d6b8]
mov r8d, ecx
xor r8d, edx
and ecx, edx
nop word cs:[rax + rax]
mov edx, dword [0x14051d6ac]
cmp edx, 0x25
jg 0x1401c1b1f
mov edx, dword [0x14051d6a8]
lea r9d, [rdx - 1]
imul r9d, edx
test r9b, 1
je 0x1401c1b35
mov edx, dword [0x14051d6a8]
lea r9d, [rdx - 1]
imul r9d, edx
test r9b, 1
jne 0x1401c1b00
jmp 0x1401c1b0b
lea ecx, [r8 + rcx*2]
mov dword [0x14051d6b8], ecx
mov rcx, rax
call fcn.1401e0c80
mov r14, rax
mov r15, qword [rbx]
mov rcx, qword [rbx + 8]
mov rax, qword [0x14051d6b0]
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rax, [rdx + rax*2]
sub rax, r15
mov r8, r14
sub r8, rax
jae 0x1401c1b75
add r15, r14
jmp 0x1401c1b9f
jbe 0x1401c1ba3
mov rax, qword [rbx + 0x10]
sub rax, r15
cmp rax, r14
jae 0x1401c1b94
lea r8, [rbp - 0x58]
mov rcx, rbx
mov rdx, r14
call fcn.1401a3850
jmp 0x1401c1ba3
lea r15, [rcx + r8]
xor edx, edx
call fcn.1403d1170
mov qword [rbx + 8], r15
mov r8, qword [rbx]
lea rcx, [rbp - 0x18]
xor edx, edx
mov r9, r14
call fcn.1401e0f10
mov rcx, qword [rbp + 0x78]
test rcx, rcx
je 0x1401c1bd4
lea rax, [rbp + 0x40]
cmp rcx, rax
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400f5c95.0]
mov rcx, qword [rbp + 0x28]
test rcx, rcx
je 0x1401c1bf4
lea rax, [rbp - 0x10]
cmp rcx, rax
setne dl
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400f5c95.0]
mov r9, qword [rdi]
lea rcx, [r9 + 0x18]
xor edx, edx
mov r8, rsi
call fcn.1401c14d0
cmp dword [rax], 0
sete al
add rsp, 0x118
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret