Function at 0x1401d1c90
Capabilities:
Encode data using xor
Parse credit card information

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov rsi, rcx
mov eax, dword [0x14058f6dc]
cmp eax, 0x41
jg 0x1401d1cf6
xorps xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], 0
mov eax, dword [0x140533f4c]
lea ecx, [rax + 0xd698fca]
lea rdx, [fcn.1401d1c90]
add edx, edx
add edx, 0x2940
and edx, ecx
add eax, 0xd698fc9
cmp edx, eax
je 0x1401d1d2c
xorps xmm0, xmm0
nop dword [rax]
movaps xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], 0
mov eax, dword [0x14058f6d8]
mov ecx, dword [0x140533f4c]
neg ecx
add ecx, eax
add ecx, 0xd698fca
imul ecx, eax
test cl, 1
jne 0x1401d1d00
jmp 0x1401d1cc1
lea rcx, [rsi + 0x40]
mov qword [rbp], rcx
call fcn.140107560
mov r14, qword [rsi]
mov r15, qword [r14]
cmp r15, r14
je 0x1401d1e29
lea rdi, [rbp - 0x38]
lea rbx, [rbp - 0x20]
movups xmm0, xmmword [r15 + 0x20]
movaps xmmword [rbp - 0x40], xmm0
mov rcx, qword [rbp - 0x38]
call fcn.1401d3730
test al, al
jne 0x1401d1d90
mov rdx, qword [rbp - 0x18]
cmp rdx, qword [rbp - 0x10]
je 0x1401d1d7e
mov rax, qword [rbp - 0x38]
mov qword [rdx], rax
add qword [rbp - 0x18], 8
jmp 0x1401d1d90
mov rcx, rbx
mov r8, rdi
call fcn.1401d2740
nop dword [rax]
mov rcx, qword [r15 + 0x10]
cmp byte [rcx + 0x19], 0
je 0x1401d1dc0
nop word [rax + rax]
mov rax, qword [r15 + 8]
cmp byte [rax + 0x19], 0
jne 0x1401d1e03
mov rcx, r15
mov r15, rax
cmp rcx, qword [rax + 0x10]
je 0x1401d1da0
mov rax, r15
jmp 0x1401d1e03
mov rax, rcx
nop word cs:[rax + rax]
mov rcx, qword [rax]
movzx edx, byte [rcx + 0x19]
mov r8d, dword [0x14058f6dc]
mov r9d, dword [0x140533f4c]
mov r10d, r9d
xor r10d, 0xd698ffc
and r9d, 0xd698ffc
lea r9d, [r10 + r9*2]
cmp r8d, r9d
jge 0x1401d1dd0
test dl, dl
je 0x1401d1dc0
mov ecx, dword [0x14058f6dc]
cmp ecx, 0x32
mov ecx, dword [0x14058f6d8]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
jne 0x1401d1e0c
mov r15, rax
cmp rax, r14
jne 0x1401d1d50
mov rdi, qword [0x140533be8]
movsxd rax, dword [rdi]
mov qword [rbp - 0x30], rax
mov eax, dword [0x140451440]
mov dword [rbp + 0xc], eax
mov eax, dword [0x14058f6d8]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
je 0x1401d1e6b
nop word cs:[rax + rax]
mov eax, dword [0x14058f6dc]
cmp eax, 0x3b
jge 0x1401d1e60
mov rcx, qword [rbp]
call fcn.140107610
add qword [rbp - 0x30], rdi
lea rax, [fcn.1401d1c90]
add eax, eax
add eax, 0xbe0
mov ecx, eax
not ecx
nop word [rax + rax]
mov edx, dword [0x14058f6d8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x1401d1ea8
test ecx, eax
je 0x1401d1ece
mov edx, dword [0x14058f6d8]
mov r8d, dword [0x140533f4c]
neg r8d
add r8d, edx
add r8d, 0xd698fca
imul r8d, edx
test r8b, 1
jne 0x1401d1e90
jmp 0x1401d1ea4
mov rdi, qword [rbp - 0x20]
mov rbx, qword [rbp - 0x18]
cmp rdi, rbx
je 0x1401d1f09
nop dword [rax + rax]
mov rcx, qword [rsi + 0xa8]
test rcx, rcx
je 0x1401d21ba
mov rdx, qword [rdi]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x140114b5b.0]
add rdi, 8
cmp rdi, rbx
jne 0x1401d1ee0
mov rsi, qword [rbp - 0x20]
mov eax, dword [0x140533be4]
lea r8d, [rax + 1]
mov dword [0x140533be4], r8d
mov ecx, eax
not ecx
mov edx, ecx
and edx, r8d
not r8d
and eax, r8d
or eax, edx
and r8d, ecx
or r8d, eax
xor edx, edx
xor r8d, 0xffffffff
mov dword [rbp - 0x24], r8d
mov edi, 0
jne 0x1401d1f9b
nop word cs:[rax + rax]
mov eax, dword [0x14058f6d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401d1f50
cmp dword [0x140533f4c], 0xf2967037
jne 0x1401d1f50
lea rax, [fcn.1401d1c90]
add eax, eax
add eax, 0x18e0
mov ecx, eax
not ecx
nop
test ecx, eax
jne 0x1401d1f80
xor r8d, r8d
mov edx, 0
mov edi, 0
cmp dword [rbp + 0xc], 0
jg 0x1401d2033
test rsi, rsi
je 0x1401d2330
mov r15, rdi
mov r14, rdx
mov r8, qword [0x1404514e8]
mov r9, qword [0x1404514e0]
lea rax, [fcn.1401d1c90]
lea r11d, [rax + rax]
add r11d, 0x3780
mov ebx, r11d
not ebx
mov edx, dword [rbp - 0x24]
nop word cs:[rax + rax]
mov eax, dword [0x14058f6d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401d2018
xor r10d, r10d
test edx, edx
setne r10b
add r10, 0xffffffffffffffff
mov edi, 0
adc rdi, 0xffffffffffffffff
mov eax, dword [0x14058f6d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1401d201f
test ebx, r11d
jne 0x1401d1fe0
jmp 0x1401d1ff1
mov eax, dword [0x14058f6dc]
cmp eax, 0x35
jle 0x1401d21bf
jmp 0x1401d21e5
mov r9d, 0xd698fdf
mov r10d, 0xd698fd6
mov r11b, 1
xor r14d, r14d
xor edx, edx
xor edi, edi
jmp 0x1401d2091
xor r12, rbx
xor r15, r13
mov rdi, qword [rbp - 0x50]
and rdi, rcx
mov rdx, qword [rbp]
and rdx, qword [rbp - 0x48]
or r15, rdx
or r12, rdi
not r12
not r15
or rdx, r15
or rdi, r12
add r14d, 0x10
mov ecx, eax
xor ecx, r14d
and r14d, eax
lea r14d, [rcx + r14*2]
cmp r14d, dword [rbp + 0xc]
jge 0x1401d1f9b
mov eax, dword [0x14058f6dc]
cmp eax, 0x62
mov eax, dword [0x14058f6dc]
cmp eax, 0x36
jge 0x1401d209a
movsxd r15, r14d
add r15, qword [rbp - 0x30]
nop dword [rax]
mov eax, dword [0x14058f6d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401d20d0
mov eax, dword [0x14058f6dc]
cmp eax, 0xc
jl 0x1401d212a
nop dword [rax]
test r8b, r8b
je 0x1401d20da
test r11b, r11b
je 0x1401d20d0
mov eax, dword [0x14058f6dc]
mov ecx, dword [0x140533f4c]
add ecx, r10d
cmp eax, ecx
jge 0x1401d20d5
mov eax, dword [0x14058f6d8]
mov ecx, dword [0x140533f4c]
neg ecx
add ecx, eax
add ecx, 0x6e66bb2
imul ecx, eax
test cl, 1
jne 0x1401d20b0
jmp 0x1401d20c1
mov rax, qword [r15]
mov rax, qword [r15 + 8]
mov eax, dword [0x14058f6dc]
mov ecx, dword [0x140533f4c]
add ecx, r9d
cmp eax, ecx
jl 0x1401d213b
mov eax, dword [0x14058f6d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401d2110
mov r13, qword [r15]
mov rbx, qword [r15 + 8]
mov eax, dword [0x14058f6d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401d2110
mov qword [rbp], rdx
mov r15, rdx
not r15
mov qword [rbp - 0x50], rdi
mov r12, rdi
not r12
mov rax, r13
not rax
mov qword [rbp - 0x48], rax
mov rcx, rbx
not rcx
nop word [rax + rax]
mov eax, dword [0x14058f6d8]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x1401d21ad
mov eax, dword [0x14058ef9c]
mov edx, dword [0x14058f6d8]
lea edi, [rdx + 1]
imul edi, edx
test dil, 1
je 0x1401d2050
mov eax, dword [0x14058f6dc]
cmp eax, 0x60
jge 0x1401d2180
jmp 0x1401d2191
call fcn.1404071d4
mov eax, dword [0x14058f6d8]
mov ecx, dword [0x140533f4c]
mov edx, eax
sub edx, ecx
add edx, 0xf2967036
imul edx, eax
and edx, 1
add ecx, 0xd698fc9
cmp edx, ecx
je 0x1401d2204
mov eax, 0xd699009
nop word [rax + rax]
mov ecx, dword [0x14058f6dc]
mov edx, dword [0x140533f4c]
add edx, eax
cmp ecx, edx
jge 0x1401d21f0
jmp 0x1401d21bf
sub r9, r14
sbb r8, r15
mov eax, 0xd698fca
add eax, dword [0x140533f4c]
lea rcx, [fcn.1401d1c90]
add ecx, ecx
add ecx, 0x14e0
test ecx, eax
jne 0x1401d2390
jmp 0x1401d2355
mov eax, dword [0x14058f6dc]
mov ecx, 0xd698fe5
add ecx, dword [0x140533f4c]
cmp eax, ecx
jl 0x1401d2261
nop word cs:[rax + rax]
mov eax, dword [0x14058f6d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401d2250
mov rax, qword [rsi - 8]
add rsi, qword [0x140533f50]
sub rsi, rax
movabs rcx, 0xe3747656a0f9d000
add rcx, rsi
cmp rcx, 0x20
jae 0x1401d22a0
add rdi, qword [0x140533f50]
movabs rcx, 0xe3747656a0f9d02f
add rdi, rcx
mov rsi, rax
jmp 0x1401d22b0
mov eax, dword [0x14058f6dc]
cmp eax, 0x5e
jge 0x1401d22a0
call fcn.1403e571c
cmp dword [0x140533f4c], 0xf2967037
jne 0x1401d22f0
mov dword [rsp + 0x20], 0xfcdbb1ab
mov rcx, rsi
mov rdx, rdi
mov r8d, 0x420c149b
mov r9d, 0xef028733
call fcn.1400ab270
mov eax, dword [0x14058f6d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1401d2330
nop dword [rax]
mov dword [rsp + 0x20], 0xfcdbb1ab
mov rcx, rsi
mov rdx, rdi
mov r8d, 0x420c149b
mov r9d, 0xef028733
call fcn.1400ab270
mov eax, dword [0x14058f6d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401d22f0
jmp 0x1401d22bc
mov eax, dword [0x14058f6d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401d2330
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [0x14058f6dc]
cmp eax, 0x25
jg 0x1401d239d
mov eax, dword [0x14058f6dc]
cmp eax, 0xb
jge 0x1401d239d
mov eax, 0xd698fca
add eax, dword [0x140533f4c]
lea rcx, [fcn.1401d1c90]
add ecx, ecx
add ecx, 0x4220
test ecx, eax
je 0x1401d23a6
nop dword [rax]
mov eax, dword [0x14058f6dc]
cmp eax, 0x4c
jg 0x1401d2390
jmp 0x1401d2355
mov al, 1
nop
test al, al
je 0x1401d23a0
jmp 0x1401d2360
mov rax, r9
not rax
xor r10, rax
mov rax, r8
not rax
xor rdi, rax
and r10, r9
and rdi, r8
or rdi, r10
add rdi, qword [0x14058f410]
mov qword [0x14058f410], rdi
add rdi, qword [rbp - 0x10]
sub rdi, rsi
mov rax, qword [0x140533f50]
movabs rcx, 0xe3747656a0f9e007
xor rcx, rax
movabs rdx, 0x63747656a0f9e007
and rdx, rax
lea rax, [rcx + rdx*2]
cmp rdi, rax
ja 0x1401d2231
jmp 0x1401d22b0