Function at 0x1401d9144
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov r14d, dword [r8]
xor r13d, r13d
mov dword [rsp + 0x20], r13d
mov rsi, rdx
mov r15, rcx
test rdx, rdx
jne 0x1401d917e
mov ebx, r13d
jmp 0x1401d9191
or rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdx + rbx], r13b
jne 0x1401d9182
and ebx, 0x3fffffff
test r14b, 0x40
jne 0x1401d91a4
cmp byte [0x1405154d6], r13b
je 0x1401d95f1
cmp ebx, 5
jb 0x1401d95f1
cmp dword [rdx], 0x656c6966
jne 0x1401d95f1
cmp byte [rdx + 4], 0x3a
jne 0x1401d95f1
or r14d, 0x40
mov r8d, ebx
mov dword [rsp + 0x88], r14d
mov ebp, r13d
lea ecx, [rbx + 8]
test ebx, ebx
je 0x1401d91f4
mov rdx, r13
cmp byte [rdx + rsi], 0x26
mov rax, r13
sete al
inc rdx
add rcx, rax
cmp rdx, r8
jl 0x1401d91df
call fcn.14015c3bc
mov rdi, rax
test rax, rax
je 0x1401d9601
xor eax, eax
mov r9b, 0x2f
mov dword [rdi], eax
add rdi, 4
lea ecx, [rax + 5]
cmp byte [rsi + 5], r9b
jne 0x1401d927e
cmp byte [rsi + 6], r9b
jne 0x1401d927e
lea r8, [rsi + 7]
lea ecx, [rax + 7]
mov al, byte [r8]
test al, al
je 0x1401d927e
mov rdx, r8
cmp al, r9b
je 0x1401d9240
inc rdx
inc ecx
mov al, byte [rdx]
test al, al
jne 0x1401d9230
cmp ecx, 7
je 0x1401d927e
cmp ecx, 0x10
jne 0x1401d9262
movabs rax, 0x736f686c61636f6c
cmp rax, qword [r8]
jne 0x1401d9262
lea eax, [rcx + 0x64]
cmp al, byte [r8 + 8]
je 0x1401d927e
lea edx, [rcx - 7]
mov dword [rsp + 0x20], 1
lea rcx, [0x1404e75f0]
call fcn.14015e634
jmp 0x1401d9667
movsxd rax, ecx
mov r9d, r13d
mov dl, byte [rax + rsi]
test dl, dl
je 0x1401d940e
mov r15, rdi
lea r12, [rdi - 1]
lea r14, [0x1404d4c80]
movsxd rbx, ecx
cmp dl, 0x23
je 0x1401d93ef
inc ecx
cmp dl, 0x25
jne 0x1401d9366
movsxd rax, ecx
movzx r11d, byte [rax + rsi]
test byte [r11 + r14], 8
je 0x1401d9366
movzx r10d, byte [rbx + rsi + 2]
test byte [r10 + r14], 8
je 0x1401d9366
mov dl, r11b
movsx eax, r11b
sar eax, 6
and al, 1
movsx r8d, r10b
movzx eax, al
imul ecx, eax, 7
sar r8d, 6
and r8b, 1
movzx eax, r8b
sub dl, cl
imul ecx, eax, 7
mov al, r10b
and edx, 0xf
shl edx, 4
sub al, cl
lea ecx, [rbx + 3]
and eax, 0xf
add edx, eax
jne 0x1401d93d6
movsxd rdx, ecx
add rdx, rsi
jmp 0x1401d935e
cmp al, 0x23
je 0x1401d93e1
test r9d, r9d
jne 0x1401d9335
cmp al, 0x3f
je 0x1401d93e1
cmp r9d, 1
jne 0x1401d934b
cmp al, 0x3d
je 0x1401d93e1
cmp al, 0x26
je 0x1401d93e1
cmp r9d, 2
jne 0x1401d9359
cmp al, 0x26
je 0x1401d93e1
inc ecx
inc rdx
mov al, byte [rdx]
test al, al
jne 0x1401d9320
jmp 0x1401d93e1
cmp r9d, 1
jne 0x1401d93b8
mov r8b, 0x26
cmp dl, r8b
je 0x1401d9379
cmp dl, 0x3d
jne 0x1401d93d6
cmp byte [r12], r13b
jne 0x1401d939e
movsxd rdx, ecx
add rdx, rsi
jmp 0x1401d9396
cmp al, 0x23
je 0x1401d93e1
cmp byte [rdx - 1], r8b
je 0x1401d93e1
inc ecx
inc rdx
mov al, byte [rdx]
test al, al
jne 0x1401d9387
jmp 0x1401d93e1
cmp dl, r8b
jne 0x1401d93b0
inc ebp
mov byte [r15], r13b
inc r12
inc r15
jmp 0x1401d93d3
mov r9d, 2
jmp 0x1401d93d3
test r9d, r9d
jne 0x1401d93c2
cmp dl, 0x3f
je 0x1401d93cd
cmp r9d, 2
jne 0x1401d93d6
cmp dl, 0x26
jne 0x1401d93d6
mov r9d, 1
mov dl, r13b
inc ebp
mov byte [r15], dl
inc r12
inc r15
movsxd rax, ecx
mov dl, byte [rax + rsi]
test dl, dl
jne 0x1401d929d
mov r14d, dword [rsp + 0x88]
mov r15, qword [rsp + 0x80]
cmp r9d, 1
jne 0x1401d940e
movsxd rax, ebp
inc ebp
mov byte [rax + rdi], r13b
xor ecx, ecx
movsxd rax, ebp
mov dword [rax + rdi], ecx
test rdi, rdi
jne 0x1401d9420
mov rax, r13
jmp 0x1401d9432
or rax, 0xffffffffffffffff
inc rax
cmp byte [rdi + rax], r13b
jne 0x1401d9424
and eax, 0x3fffffff
lea rdx, [rax + 1]
add rdx, rdi
jmp 0x1401d95b9
or r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], r13b
jne 0x1401d9442
and r8d, 0x3fffffff
lea ebp, [r8 + 1]
add rbp, rdx
jne 0x1401d9468
mov r9d, r13d
mov dword [rsp + 0x24], r13d
mov rsi, r13
jmp 0x1401d948a
or rsi, 0xffffffffffffffff
inc rsi
cmp byte [rsi + rbp], r13b
jne 0x1401d946c
mov r9d, esi
and r9d, 0x3fffffff
mov dword [rsp + 0x24], r9d
and esi, 0x3fffffff
cmp r8d, 3
jne 0x1401d94bb
mov eax, 0x6676
cmp ax, word [rdx]
jne 0x1401d95aa
lea eax, [r8 + 0x70]
cmp al, byte [rdx + 2]
jne 0x1401d95aa
mov r15, rbp
mov qword [rsp + 0x80], rbp
jmp 0x1401d95b2
cmp r8d, 5
jne 0x1401d94f3
mov eax, 0x68636163
cmp eax, dword [rdx]
jne 0x1401d95aa
lea eax, [r8 + 0x60]
cmp al, byte [rdx + 4]
jne 0x1401d95aa
mov ebx, 0x60000
lea r15, [0x1405183e8]
mov r12d, ebx
lea rdx, [0x1404e760c]
jmp 0x1401d9523
cmp r8d, 4
jne 0x1401d95aa
mov eax, 0x65646f6d
cmp eax, dword [rdx]
jne 0x1401d95aa
mov ebx, 0x87
lea r15, [0x140517e40]
mov r12d, r14d
lea rdx, [0x1404e7634]
and r12d, ebx
mov rcx, qword [r15]
mov r14, r13
test rcx, rcx
je 0x1401d95e0
mov r13, rdx
or rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x1401d9539
and eax, 0x3fffffff
cmp r9d, eax
jne 0x1401d9563
mov rdx, rcx
mov r8d, r9d
mov rcx, rbp
call fcn.1404083f0
test eax, eax
je 0x1401d9575
mov r9d, dword [rsp + 0x24]
inc r14
mov rdx, r13
mov rax, r14
add rax, rax
mov rcx, qword [r15 + rax*8]
jmp 0x1401d9529
add r14, r14
mov rdx, r13
mov ecx, dword [r15 + r14*8 + 8]
test ecx, ecx
je 0x1401d95e0
mov eax, ecx
btr eax, 7
cmp eax, r12d
jg 0x1401d95c4
mov r14d, dword [rsp + 0x88]
not ebx
and r14d, ebx
or r14d, ecx
mov dword [rsp + 0x88], r14d
xor r13d, r13d
mov r15, qword [rsp + 0x80]
lea rdx, [rbp + 1]
add rdx, rsi
cmp byte [rdx], r13b
jne 0x1401d943e
jmp 0x1401d9638
mov dword [rsp + 0x20], 3
lea rcx, [0x1404e7658]
mov r8, rbp
call fcn.14015e634
jmp 0x1401d9667
mov dword [rsp + 0x20], 1
lea rcx, [0x1404e7640]
jmp 0x1401d95d3
lea ecx, [rbx + 8]
call fcn.14015c3bc
mov rdi, rax
test rax, rax
jne 0x1401d960b
mov eax, 7
jmp 0x1401d969c
xor eax, eax
mov dword [rdi], eax
add rdi, 4
test ebx, ebx
je 0x1401d9625
mov r8d, ebx
mov rdx, rsi
mov rcx, rdi
call fcn.1404084f0
xor ecx, ecx
mov eax, ebx
and r14d, 0xffffffbf
mov dword [rsp + 0x88], r14d
mov dword [rax + rdi], ecx
mov rcx, r15
call fcn.14015bac4
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
test rax, rax
jne 0x1401d967c
mov rdx, r15
mov dword [rsp + 0x20], 1
lea rcx, [0x1404e7670]
call fcn.14015e634
mov rcx, qword [rsp + 0xa8]
mov qword [rcx], rax
mov rcx, rdi
call fcn.1401daaf0
xor edi, edi
mov rcx, qword [rsp + 0x90]
mov eax, dword [rsp + 0x88]
mov dword [rcx], eax
mov rcx, qword [rsp + 0xa0]
mov eax, dword [rsp + 0x20]
mov qword [rcx], rdi
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret