Function at 0x14021cc60
Capabilities:
Parse credit card information

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x14021d2d1
sub rsp, 0xb0
mov qword [rsp + 0xa8], rbp
lea rbp, [rsp + 0xa8]
mov qword [rsp + 0xb8], rax
mov rdx, qword [rdi]
test rdx, rdx
je 0x14021cca5
cmp rdi, rdx
je 0x14021ccbb
nop dword [rax + rax]
jmp 0x14021d2bd
cmp dword [0x1405edac0], 0
jne 0x14021ccb3
mov qword [rdi], rdi
jmp 0x14021ccbb
mov rdx, rdi
call fcn.1400655e0
lea rdx, [rbx + 0x10]
nop
test rdx, rdx
jl 0x14021d2aa
mov byte [rsp + 0xc8], cl
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xd0], rdi
lea r8, [rdi + 8]
mov qword [rsp + 0x90], r8
mov r9, qword [rdi + 0x10]
mov r10, qword [rdi + 0x18]
mov r11, r10
sub r10, r9
cmp r10, rdx
jge 0x14021cdd2
mov qword [rsp + 0x48], r9
nop
lea rcx, [rbx + r11*2]
lea rcx, [rcx + 0x10]
mov qword [rsp + 0x50], rcx
lea rax, [0x1402ce8c0]
mov rbx, r9
call fcn.14004ab20
mov rdi, qword [rsp + 0xd0]
mov rdx, qword [rdi + 0x10]
mov rcx, qword [rsp + 0x48]
cmp rdx, rcx
mov rsi, rcx
cmovl rcx, rdx
mov rbx, qword [rdi + 8]
cmp rax, rbx
je 0x14021cd73
mov qword [rsp + 0x88], rax
call fcn.140066300
mov rax, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0xd0]
mov qword [rdi + 0x10], rsi
mov rdx, qword [rsp + 0x50]
mov qword [rdi + 0x18], rdx
cmp dword [0x1405edac0], 0
jne 0x14021cd9a
mov qword [rdi + 8], rax
mov rcx, rdi
mov rdi, qword [rsp + 0x90]
jmp 0x14021cdaa
mov rcx, rdi
mov rdi, qword [rsp + 0x90]
call fcn.1400654c0
mov rax, qword [rsp + 0xb8]
movzx ecx, byte [rsp + 0xc8]
mov rbx, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xd0]
mov r8, qword [rsp + 0x90]
xor edx, edx
xor esi, esi
jmp 0x14021cde0
inc rdx
nop dword [rax + rax]
cmp rbx, rdx
jle 0x14021d140
movzx r9d, byte [rax + rdx]
cmp r9b, 0x2f
ja 0x14021cf00
nop dword [rax + rax]
cmp r9b, 0x25
ja 0x14021cecf
cmp r9b, 0x21
je 0x14021cf32
lea r10d, [r9 - 0x23]
nop dword [rax + rax]
cmp r10b, 1
jbe 0x14021cf32
cmp r9b, 0x25
jne 0x14021cf54
test cl, cl
je 0x14021cf8a
lea r10, [rdx + 2]
cmp rbx, r10
jle 0x14021cf8a
lea r11, [rdx + 1]
cmp rbx, r11
jbe 0x14021d29f
movzx r11d, byte [rdx + rax + 1]
lea r12d, [r11 - 0x30]
cmp r12b, 9
ja 0x14021ce6b
cmp rbx, r10
jmp 0x14021ce8d
lea r12d, [r11 - 0x61]
cmp r12b, 5
ja 0x14021ce7a
cmp rbx, r10
jmp 0x14021ce8d
add r11d, 0xffffffbf
nop
cmp r11b, 5
ja 0x14021cf8a
cmp rbx, r10
jbe 0x14021d294
movzx r10d, byte [rdx + rax + 2]
lea r11d, [r10 - 0x30]
nop dword [rax]
cmp r11b, 9
jbe 0x14021cdd8
lea r11d, [r10 - 0x61]
cmp r11b, 5
jbe 0x14021cdd8
add r10d, 0xffffffbf
nop dword [rax]
cmp r10b, 5
jbe 0x14021cdd8
jmp 0x14021cf8a
cmp r9b, 0x2c
ja 0x14021cee8
cmp r9b, 0x26
je 0x14021cf32
nop dword [rax + rax]
cmp r9b, 0x2a
jae 0x14021cf32
jmp 0x14021cf54
cmp r9b, 0x2e
jbe 0x14021cdd8
cmp r9b, 0x2f
je 0x14021cf32
jmp 0x14021cf54
cmp r9b, 0x40
ja 0x14021cf20
lea r10d, [r9 - 0x3a]
cmp r10b, 1
jbe 0x14021cf32
cmp r9b, 0x3d
je 0x14021cf32
cmp r9b, 0x3f
jae 0x14021cf32
jmp 0x14021cf54
cmp r9b, 0x5d
ja 0x14021cf40
cmp r9b, 0x5b
je 0x14021cf32
cmp r9b, 0x5d
jne 0x14021cf54
test cl, cl
jne 0x14021cdd8
jmp 0x14021cf8a
cmp r9b, 0x5f
je 0x14021cdd8
cmp r9b, 0x7e
je 0x14021cdd8
lea r10d, [r9 - 0x61]
nop dword [rax + rax]
cmp r10b, 0x19
jbe 0x14021cdd8
lea r10d, [r9 - 0x41]
cmp r10b, 0x19
jbe 0x14021cdd8
lea r10d, [r9 - 0x30]
nop dword [rax]
cmp r10b, 9
jbe 0x14021cdd8
cmp rsi, rdx
ja 0x14021d289
mov r10, rdx
sub rdx, rsi
mov r11, rdx
neg rdx
sar rdx, 0x3f
and rsi, rdx
lea rdx, [rax + rsi]
nop
mov r12, qword [rdi]
test r12, r12
je 0x14021cfbd
cmp rdi, r12
je 0x14021cfd9
jmp 0x14021d276
cmp dword [0x1405edac0], 0
jne 0x14021cfcb
mov qword [rdi], rdi
jmp 0x14021cfd9
mov rsi, r8
mov r8, rdi
call fcn.140065640
mov r8, rsi
mov qword [rsp + 0x68], r10
mov byte [rsp + 0x3f], r9b
mov r12, qword [rdi + 0x10]
lea r13, [r11 + r12]
mov r15, qword [rdi + 0x18]
mov r10, qword [rdi + 8]
cmp r15, r13
jae 0x14021d037
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x78], rdx
mov rax, r10
mov rbx, r13
mov rcx, r15
mov rdi, r11
lea rsi, [0x1402ce8c0]
call fcn.14004ac00
mov rdx, qword [rsp + 0x78]
mov r11, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov r10, rax
mov r13, rbx
mov r15, rcx
mov qword [rsp + 0x80], r10
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x58], r15
lea rax, [r10 + r12]
mov rbx, rdx
mov rcx, r11
call fcn.140066300
mov rdx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0xd0]
mov qword [rbx + 0x10], rdx
mov rdx, qword [rsp + 0x58]
mov qword [rbx + 0x18], rdx
cmp dword [0x1405edac0], 0
jne 0x14021d089
mov rdx, qword [rsp + 0x80]
mov qword [rbx + 8], rdx
jmp 0x14021d09e
mov rdi, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x80]
call fcn.1400655e0
movups xmmword [rsp + 0x98], xmm15
lea rdx, [0x1402ce8c0]
mov qword [rsp + 0x98], rdx
movzx r10d, byte [rsp + 0x3f]
lea r11, [0x140262160]
lea r10, [r11 + r10*8]
mov qword [rsp + 0xa0], r10
lea rax, [0x1403a98c0]
lea rcx, [0x140327703]
mov edi, 6
lea rsi, [rsp + 0x98]
mov r8d, 1
mov r9, r8
call fcn.1400d0520
mov rsi, qword [rsp + 0x68]
lea rdx, [rsi + 1]
mov rax, qword [rsp + 0xb8]
movzx ecx, byte [rsp + 0xc8]
mov rbx, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xd0]
mov r8, qword [rsp + 0x90]
mov r9, rdx
mov rdx, rsi
mov rsi, r9
jmp 0x14021cdd8
cmp rbx, rsi
jb 0x14021d26b
sub rbx, rsi
mov rcx, rbx
neg rbx
sar rbx, 0x3f
and rbx, rsi
add rbx, rax
nop
mov rdx, qword [rdi]
test rdx, rdx
je 0x14021d16f
cmp rdi, rdx
je 0x14021d185
jmp 0x14021d258
cmp dword [0x1405edac0], 0
jne 0x14021d17d
mov qword [rdi], rdi
jmp 0x14021d185
mov rdx, rdi
call fcn.1400655e0
mov qword [rsp + 0x40], rsi
mov rdx, qword [rdi + 0x10]
lea r9, [rcx + rdx]
mov r10, qword [rdi + 0x18]
mov rax, qword [rdi + 8]
cmp r10, r9
jae 0x14021d1da
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x70], rbx
mov rbx, r9
mov rdi, rcx
lea rsi, [0x1402ce8c0]
mov rcx, r10
nop
call fcn.14004ac00
mov rdx, qword [rsp + 0x68]
mov r9, rbx
mov r10, rcx
mov rcx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x70]
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x80], rax
add rdx, rax
mov rax, rdx
call fcn.140066300
mov rdx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0xd0]
mov qword [rsi + 0x10], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsi + 0x18], rdx
cmp dword [0x1405edac0], 0
jne 0x14021d228
mov rcx, qword [rsp + 0x80]
mov qword [rsi + 8], rcx
jmp 0x14021d23d
mov rdi, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x80]
call fcn.1400655c0
mov rcx, qword [rsp + 0x40]
test rcx, rcx
setne al
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
lea rax, [0x1402ce6c0]
lea rbx, [0x1403a8910]
call fcn.1400366a0
mov rax, rsi
mov rcx, rbx
call fcn.140065a20
lea rax, [0x1402ce6c0]
lea rbx, [0x1403a8910]
call fcn.1400366a0
mov rax, rsi
mov rcx, rdx
call fcn.140065a20
mov rax, r10
mov rcx, rbx
call fcn.140065960
mov rax, r11
mov rcx, rbx
call fcn.140065960
lea rax, [0x1402ce6c0]
lea rbx, [0x1403a8920]
call fcn.1400366a0
lea rax, [0x1402ce6c0]
lea rbx, [0x1403a8910]
call fcn.1400366a0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov byte [rsp + 0x18], cl
mov qword [rsp + 0x20], rdi
call fcn.1400632e0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
movzx ecx, byte [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
nop dword [rax]
jmp fcn.14021cc60