Function at 0x1401d71b0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push r12
push r13
push r15
sub rsp, 0x30
mov r10, qword [rcx + 0x11f0]
mov rbx, rcx
mov r15, qword [rcx + 0x198]
inc r10
mov rsi, r10
movzx ecx, byte [r10]
call fcn.1401d6f00
mov r12d, 3
test al, al
je 0x1401d7240
nop dword [rax + rax]
movzx ecx, byte [rsi + 1]
mov r8, rsi
inc rsi
call fcn.1401d6f00
test al, al
jne 0x1401d71f0
cmp rsi, r10
je 0x1401d7240
mov rdx, rsi
jbe 0x1401d7215
cmp byte [r8], 0x2f
cmove rdx, r8
lea r13, [r15 + 8]
mov dword [rsp + 0x20], r12d
mov r8, r13
sub rdx, r10
xor r9d, r9d
mov rcx, r10
call fcn.140182970
test eax, eax
je 0x1401d724c
add rsp, 0x30
pop r15
pop r13
pop r12
pop rsi
pop rbx
ret
lea r13, [r15 + 8]
mov qword [r13], 0
cmp byte [rsi], 0x3b
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], r14
jne 0x1401d7715
movzx eax, byte [rsi + 1]
inc rsi
mov rdi, rsi
test al, al
je 0x1401d77c6
cmp al, 0x3d
je 0x1401d728d
movzx eax, byte [rsi + 1]
inc rsi
test al, al
jne 0x1401d7276
mov eax, r12d
jmp 0x1401d774d
mov rbx, rsi
sub rbx, rdi
jne 0x1401d72a9
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [rdi + rbx], 0
jne 0x1401d72a0
lea rcx, [rbx + 1]
call qword [fcn.14022b0a0]
mov r9, rax
test rax, rax
je 0x1401d77c0
mov r14, rax
test rbx, rbx
je 0x1401d7369
nop dword [rax + rax]
movzx ecx, byte [rdi]
cmp cl, 0x25
jne 0x1401d733f
cmp rbx, 2
jbe 0x1401d733f
movsx r8, byte [rdi + 1]
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x1401d72fb
lea eax, [r8 - 0x61]
cmp al, 5
jbe 0x1401d72fb
lea eax, [r8 - 0x41]
cmp al, 5
ja 0x1401d733f
movsx rdx, byte [rdi + 2]
lea eax, [rdx - 0x30]
cmp al, 9
jbe 0x1401d7315
lea eax, [rdx - 0x61]
cmp al, 5
jbe 0x1401d7315
lea eax, [rdx - 0x41]
cmp al, 5
ja 0x1401d733f
mov rax, r8
lea r8, [0x140000000]
movzx ecx, byte [rax + r8 + 0x2e0d90]
mov rax, 0xfffffffffffffffd
shl cl, 4
or cl, byte [rdx + r8 + 0x2e0d90]
mov rdx, r12
jmp 0x1401d734b
mov edx, 1
mov rax, 0xffffffffffffffff
add rbx, rax
cmp cl, 0x20
jb 0x1401d7770
mov byte [r9], cl
add rdi, rdx
inc r9
test rbx, rbx
jne 0x1401d72d0
inc rsi
mov byte [r9], 0
mov rdi, rsi
movzx ecx, byte [rsi]
call fcn.1401d6f00
test al, al
je 0x1401d7390
nop
movzx ecx, byte [rsi + 1]
inc rsi
call fcn.1401d6f00
test al, al
jne 0x1401d7380
mov rbx, rsi
sub rbx, rdi
jne 0x1401d73a9
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rdi + rbx], 0
jne 0x1401d73a0
lea rcx, [rbx + 1]
call qword [fcn.14022b0a0]
mov r9, rax
test rax, rax
je 0x1401d77ac
mov rbp, rax
test rbx, rbx
je 0x1401d7469
nop dword [rax + rax]
movzx edx, byte [rdi]
cmp dl, 0x25
jne 0x1401d743f
cmp rbx, 2
jbe 0x1401d743f
movsx r8, byte [rdi + 1]
lea eax, [r8 - 0x30]
cmp al, 9
jbe 0x1401d73fb
lea eax, [r8 - 0x61]
cmp al, 5
jbe 0x1401d73fb
lea eax, [r8 - 0x41]
cmp al, 5
ja 0x1401d743f
movsx rcx, byte [rdi + 2]
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x1401d7415
lea eax, [rcx - 0x61]
cmp al, 5
jbe 0x1401d7415
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x1401d743f
mov rax, r8
lea r8, [0x140000000]
movzx edx, byte [rax + r8 + 0x2e0d90]
mov rax, 0xfffffffffffffffd
shl dl, 4
or dl, byte [rcx + r8 + 0x2e0d90]
mov rcx, r12
jmp 0x1401d744b
mov ecx, 1
mov rax, 0xffffffffffffffff
add rbx, rax
cmp dl, 0x20
jb 0x1401d777e
mov byte [r9], dl
add rdi, rcx
inc r9
test rbx, rbx
jne 0x1401d73d0
mov byte [r9], 0
mov r10, r14
sub r9, rbp
test r14, r14
je 0x1401d7795
cmp byte [r14], 0
lea rdx, str.UIDVALIDITY
je 0x1401d74b8
lea rbx, [0x140000000]
movzx eax, byte [rdx]
test al, al
je 0x1401d74b8
movzx ecx, byte [r14]
movzx eax, byte [rax + rbx + 0x2e0f40]
cmp byte [rcx + rbx + 0x2e0f40], al
jne 0x1401d74f7
inc r14
inc rdx
cmp byte [r14], 0
jne 0x1401d7490
xor ecx, ecx
lea rbx, [0x140000000]
cmp byte [rdx], cl
setne cl
xor eax, eax
cmp byte [r14], al
sete al
xor ecx, eax
test ecx, ecx
je 0x1401d74fb
cmp qword [r15 + 0x10], 0
jne 0x1401d74fb
test r9, r9
je 0x1401d74ee
cmp byte [r9 + rbp - 1], 0x2f
jne 0x1401d74ee
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x10], rbp
jmp 0x1401d76f6
xor ecx, ecx
jmp 0x1401d74d0
test r10, r10
je 0x1401d7795
cmp byte [r10], 0
lea r8, [0x1402fd470]
mov rdx, r10
je 0x1401d753b
movzx eax, byte [r8]
test al, al
je 0x1401d753b
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x2e0f40]
cmp byte [rcx + rbx + 0x2e0f40], al
jne 0x1401d7573
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x1401d7514
xor ecx, ecx
cmp byte [rdx], cl
sete cl
xor eax, eax
cmp byte [r8], al
setne al
xor ecx, eax
test ecx, ecx
je 0x1401d7577
cmp qword [r15 + 0x18], 0
jne 0x1401d7577
test r9, r9
je 0x1401d756a
cmp byte [r9 + rbp - 1], 0x2f
jne 0x1401d756a
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x18], rbp
jmp 0x1401d76f6
xor ecx, ecx
jmp 0x1401d754c
test r10, r10
je 0x1401d7795
cmp byte [r10], 0
lea r8, str.MAILINDEX
mov rdx, r10
je 0x1401d75b7
movzx eax, byte [r8]
test al, al
je 0x1401d75b7
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x2e0f40]
cmp byte [rcx + rbx + 0x2e0f40], al
jne 0x1401d75ef
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x1401d7590
xor ecx, ecx
cmp byte [rdx], cl
sete cl
xor eax, eax
cmp byte [r8], al
setne al
xor ecx, eax
test ecx, ecx
je 0x1401d75f3
cmp qword [r15 + 0x20], 0
jne 0x1401d75f3
test r9, r9
je 0x1401d75e6
cmp byte [r9 + rbp - 1], 0x2f
jne 0x1401d75e6
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x20], rbp
jmp 0x1401d76f6
xor ecx, ecx
jmp 0x1401d75c8
test r10, r10
je 0x1401d7795
cmp byte [r10], 0
lea r8, str.SECTION
mov rdx, r10
je 0x1401d7637
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x1401d7637
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x2e0f40]
cmp byte [rcx + rbx + 0x2e0f40], al
jne 0x1401d766f
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x1401d7610
xor ecx, ecx
cmp byte [rdx], cl
sete cl
xor eax, eax
cmp byte [r8], al
setne al
xor ecx, eax
test ecx, ecx
je 0x1401d7673
cmp qword [r15 + 0x28], 0
jne 0x1401d7673
test r9, r9
je 0x1401d7666
cmp byte [r9 + rbp - 1], 0x2f
jne 0x1401d7666
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x28], rbp
jmp 0x1401d76f6
xor ecx, ecx
jmp 0x1401d7648
test r10, r10
je 0x1401d7795
cmp byte [r10], 0
lea r8, str.PARTIAL
mov rdx, r10
je 0x1401d76bb
nop dword [rax]
movzx eax, byte [r8]
test al, al
je 0x1401d76bb
movzx ecx, byte [rdx]
movzx eax, byte [rax + rbx + 0x2e0f40]
cmp byte [rcx + rbx + 0x2e0f40], al
jne 0x1401d7769
inc rdx
inc r8
cmp byte [rdx], 0
jne 0x1401d7690
xor ecx, ecx
cmp byte [rdx], cl
sete cl
xor eax, eax
cmp byte [r8], al
setne al
xor ecx, eax
test ecx, ecx
je 0x1401d7795
cmp qword [r15 + 0x30], 0
jne 0x1401d7795
test r9, r9
je 0x1401d76f2
cmp byte [r9 + rbp - 1], 0x2f
jne 0x1401d76f2
mov byte [r9 + rbp - 1], 0
mov qword [r15 + 0x30], rbp
mov rcx, r10
call qword [fcn.140229280]
xor ecx, ecx
call qword [fcn.140229280]
cmp byte [rsi], 0x3b
je 0x1401d7264
mov rbx, qword [rsp + 0x60]
cmp qword [r13], 0
je 0x1401d7743
cmp qword [r15 + 0x18], 0
jne 0x1401d7743
cmp qword [r15 + 0x20], 0
jne 0x1401d7743
mov rcx, qword [rbx + 0x11b8]
lea r8, [r15 + 0x38]
mov edx, 8
lea r9d, [rdx + 0x38]
call fcn.1401bd330
movzx eax, byte [rsi]
neg al
sbb eax, eax
and eax, r12d
mov rdi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov r14, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r13
pop r12
pop rsi
pop rbx
ret
xor ecx, ecx
jmp 0x1401d76cc
mov rcx, r14
call qword [fcn.140229280]
mov eax, r12d
jmp 0x1401d774d
mov rcx, rbp
call qword [fcn.140229280]
mov rcx, r14
call qword [fcn.140229280]
mov eax, r12d
jmp 0x1401d774d
mov rcx, r10
call qword [fcn.140229280]
mov rcx, rbp
call qword [fcn.140229280]
mov eax, r12d
jmp 0x1401d774d
mov rcx, r14
mov r12d, 0x1b
call qword [fcn.140229280]
mov eax, r12d
jmp 0x1401d774d
mov r12d, 0x1b
mov eax, r12d
jmp 0x1401d774d