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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x140598fd8]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov r15, qword [0x1405a9780]
add r15, r8
sub r15, rdx
sar r15, 3
lea r14, [rdx + r15*4]
add r8, 0xfffffffffffffffc
mov rcx, rdx
mov rdx, r14
call fcn.14012c850
mov ecx, 0x5204c8ba
nop word cs:[rax + rax]
mov rax, r14
cmp r14, rbx
jbe 0x14012c24f
mov edx, dword [0x1405a977c]
mov r8d, dword [0x14053b064]
add r8d, ecx
cmp edx, r8d
mov edx, dword [rax - 4]
mov r8d, dword [rax]
mov r9d, dword [0x1405a9778]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
jne 0x14012c22b
lea r14, [rax - 4]
cmp r8d, edx
je 0x14012c210
lea r8, [rbx + r15*4]
add r8, 4
cmp r8, rdi
jae 0x14012c270
nop dword [rax]
mov ecx, dword [rax]
cmp ecx, dword [r8]
jne 0x14012c270
add r8, 4
cmp r8, rdi
jb 0x14012c260
mov ecx, dword [0x1405a9778]
nop word cs:[rax + rax]
mov ecx, dword [0x1405a977c]
cmp ecx, 0x36
jg 0x14012c280
mov ecx, 0x5204c8e8
lea r10, [rsp + 0x28]
mov r9d, 0x5204c8f7
mov r11d, 0x5204c8ae
lea r14, [fcn.14012c1b0]
mov r12b, 1
mov r13, r8
mov rbp, rax
jmp 0x14012c2d7
add r15, 4
add r10, 4
add r13, 4
mov rax, r10
mov r8, r15
lea r10, [rsp + 0x28]
mov r15, r8
jmp 0x14012c2e8
add r15, 4
add r13, 4
cmp r13, rdi
jae 0x14012c420
mov edx, dword [rax]
mov r8d, dword [r13]
cmp edx, r8d
jb 0x14012c2e4
ja 0x14012c420
nop word cs:[rax + rax]
mov edx, dword [0x1405a977c]
cmp edx, 0x3d
jg 0x14012c330
mov edx, dword [0x1405a977c]
mov r8d, dword [0x14053b064]
add r8d, ecx
cmp edx, r8d
jl 0x14012c340
mov edx, dword [0x1405a977c]
cmp edx, 0x3e
jge 0x14012c310
jmp 0x14012c31b
cmp r15, r13
je 0x14012c2e0
nop word cs:[rax + rax]
cmp byte [0x1405a9714], 0
jne 0x14012c36d
mov edx, dword [0x1405a9778]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x14012c390
mov edx, dword [0x1405a977c]
mov r8d, dword [0x14053b064]
add r8d, r9d
cmp edx, r8d
jge 0x14012c350
jmp 0x14012c359
cmp r10, r15
je 0x14012c39c
mov edx, dword [r15]
mov dword [rsp + 0x28], edx
mov edx, dword [r13]
mov dword [r15], edx
cmp r10, r13
je 0x14012c2e0
mov edx, dword [rsp + 0x28]
mov dword [r13], edx
jmp 0x14012c2e0
lea rax, [r10 - 4]
cmp r10, rdx
je 0x14012c420
lea r8, [rsp + 0x28]
cmp r8, rax
je 0x14012c3d9
mov edx, dword [rax]
mov dword [rsp + 0x28], edx
mov edx, dword [rbp]
mov dword [rax], edx
cmp r8, rbp
je 0x14012c3ea
mov edx, dword [rsp + 0x28]
mov dword [rbp], edx
xor edx, edx
test dl, dl
jne 0x14012c410
mov edx, dword [0x14053b064]
add edx, r11d
lea r8d, [r14 + r14]
add r8d, 0x1f20
test r8d, edx
je 0x14012c420
nop dword [rax]
mov edx, dword [0x1405a977c]
cmp edx, 0x25
jge 0x14012c410
jmp 0x14012c3f0
mov r10, rax
cmp rbp, rbx
jbe 0x14012c440
mov rdx, rbp
add rbp, 0xfffffffffffffffc
mov eax, dword [rdx - 4]
mov r8d, dword [r10]
cmp eax, r8d
jb 0x14012c423
jbe 0x14012c3c0
mov rbp, rdx
nop
mov eax, dword [0x1405a977c]
mov edx, dword [0x14053b064]
mov r8d, 0x5204c8ec
add edx, r8d
cmp eax, edx
mov rax, rbp
xor rax, rbx
mov rdx, r13
xor rdx, rdi
or rdx, rax
sete al
mov edx, dword [0x1405a977c]
cmp edx, 0x55
jg 0x14012c457
test al, al
jne 0x14012c7ca
cmp rbp, rbx
je 0x14012c4b0
lea rdx, [rbp - 4]
cmp r13, rdi
je 0x14012c530
mov eax, dword [0x1405a9778]
lea r8d, [rax - 1]
imul r8d, eax
test r8b, 1
jne 0x14012c770
jmp 0x14012c730
cmp byte [0x1405a9714], 0
jne 0x14012c659
cmp r15, r13
je 0x14012c659
nop word cs:[rax + rax]
mov eax, dword [0x1405a977c]
cmp eax, 0x3c
jg 0x14012c50e
mov edx, dword [0x1405a9778]
lea eax, [rdx - 1]
imul eax, edx
mov edx, dword [0x14053b064]
mov r8d, edx
xor r8d, 0x5204c8af
and edx, 0x5204c8af
lea r8d, [r8 + rdx*2]
xor edx, edx
div r8d
test edx, edx
je 0x14012c5aa
mov eax, dword [0x14053b064]
add eax, r11d
lea edx, [r14 + r14]
add edx, 0x1dc0
xor edx, eax
not edx
test edx, eax
jne 0x14012c4d0
jmp 0x14012c4db
lea rax, [r10 - 4]
cmp rbp, r10
je 0x14012c568
lea r8, [rsp + 0x28]
cmp r8, rdx
je 0x14012c54b
mov r8d, dword [rdx]
mov dword [rsp + 0x28], r8d
cmp rbp, r10
je 0x14012c556
mov r8d, dword [rax]
mov dword [rdx], r8d
lea r8, [rsp + 0x28]
cmp r8, rax
je 0x14012c568
mov r8d, dword [rsp + 0x28]
mov dword [rax], r8d
mov qword [rsp + 0x20], rdx
lea r8, [rsp + 0x28]
cmp r8, rax
je 0x14012c6b5
mov r8d, dword [0x1405a9778]
lea ebp, [r8 + 1]
imul ebp, r8d
and ebp, 1
mov r8d, dword [0x14053b064]
mov edx, 0x5204c8ad
add r8d, edx
cmp ebp, r8d
jne 0x14012c710
jmp 0x14012c6a0
lea rax, [rsp + 0x28]
cmp rax, r10
je 0x14012c5e7
mov eax, dword [0x1405a9778]
lea edx, [rax + 1]
imul edx, eax
test dl, 1
jne 0x14012c691
nop dword [rax]
mov eax, dword [r10]
mov dword [rsp + 0x28], eax
cmp dword [0x14053b064], 0xadfb3753
jne 0x14012c691
cmp r10, r15
je 0x14012c600
mov eax, dword [r15]
mov dword [r10], eax
nop word cs:[rax + rax]
mov eax, dword [0x1405a977c]
cmp eax, 0x42
jg 0x14012c61c
mov eax, dword [0x1405a9778]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x14012c648
mov eax, dword [0x14053b064]
lea edx, [r14 + r14]
add edx, 0x20
mov r8d, 0xadfb3751
sub r8d, eax
add eax, 0x5204c8ae
xor eax, edx
not edx
and r8d, edx
or eax, r8d
cmp eax, 0xffffffff
jne 0x14012c600
jmp 0x14012c60b
lea rax, [rsp + 0x28]
cmp rax, r15
je 0x14012c659
mov eax, dword [rsp + 0x28]
mov dword [r15], eax
lea rax, [rsp + 0x28]
cmp rax, r10
je 0x14012c66a
mov eax, dword [r10]
mov dword [rsp + 0x28], eax
cmp r10, r13
je 0x14012c676
mov eax, dword [r13]
mov dword [r10], eax
lea rax, [rsp + 0x28]
cmp rax, r13
je 0x14012c2c0
mov eax, dword [rsp + 0x28]
mov dword [r13], eax
jmp 0x14012c2c0
mov eax, dword [r10]
mov dword [rsp + 0x28], eax
jmp 0x14012c5d0
mov r8d, dword [rax]
mov dword [rsp + 0x28], r8d
mov r8d, dword [0x1405a977c]
cmp r8d, 0x2e
jge 0x14012c710
lea r8, [r15 - 4]
cmp r10, r15
je 0x14012c6c4
mov r10d, dword [r8]
mov dword [rax], r10d
mov r10d, dword [0x14053b064]
mov ebp, r10d
xor ebp, 0x5204c8ad
and r10d, 0x5204c8ad
add r10d, r10d
add r10d, ebp
mov rbp, qword [rsp + 0x20]
xor r10d, r10d
test r10b, r10b
jne 0x14012c6e6
lea r10, [rsp + 0x28]
cmp r10, r8
je 0x14012c2d7
mov r10d, dword [rsp + 0x28]
mov dword [r8], r10d
lea r10, [rsp + 0x28]
jmp 0x14012c2d7
mov r8d, dword [rax]
mov dword [rsp + 0x28], r8d
mov r8d, dword [0x1405a977c]
cmp r8d, 0x46
jge 0x14012c710
jmp 0x14012c6a0
test r12b, r12b
je 0x14012c770
lea rax, [rsp + 0x28]
cmp rax, r13
je 0x14012c747
mov eax, dword [r13]
mov dword [rsp + 0x28], eax
cmp r13, rdx
je 0x14012c752
mov eax, dword [rdx]
mov dword [r13], eax
lea rax, [rsp + 0x28]
cmp rax, rdx
je 0x14012c78b
mov eax, dword [rsp + 0x28]
mov dword [rdx], eax
jmp 0x14012c78b
test r12b, r12b
je 0x14012c770
jmp 0x14012c730
mov eax, dword [0x1405a977c]
cmp eax, 0x3f
jl 0x14012c79f
mov eax, dword [0x1405a9778]
lea r8d, [rax - 1]
imul r8d, eax
test r8b, 1
jne 0x14012c780
mov eax, dword [0x1405a9778]
lea r8d, [rax - 1]
imul r8d, eax
test r8b, 1
jne 0x14012c780
add r13, 4
mov rax, r10
mov r8, r15
mov rbp, rdx
lea r10, [rsp + 0x28]
jmp 0x14012c2d7
mov eax, dword [0x1405a9778]
mov ecx, dword [0x14053b064]
mov edx, eax
sub edx, ecx
add edx, 2
imul edx, eax
and edx, 1
add ecx, 0x5204c8ad
cmp edx, ecx
jne 0x14012c7ff
mov qword [rsi], r10
mov qword [rsi + 8], r15
mov eax, dword [0x1405a977c]
cmp eax, 0x1e
jl 0x14012c82b
mov eax, 0x5204c8d5
nop word cs:[rax + rax]
mov qword [rsi], r10
mov qword [rsi + 8], r15
mov ecx, dword [0x1405a977c]
mov edx, dword [0x14053b064]
add edx, eax
cmp ecx, edx
jge 0x14012c810
jmp 0x14012c7ed
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.14041e230
mov rax, rsi
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret