Function at 0x1401d0370
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov qword [rbp], 0xfffffffffffffffe
mov ebx, r8d
mov edi, edx
mov esi, ecx
mov r12, qword [0x140570830]
movsxd r13, dword [r12]
mov rax, r13
not rax
and r13, r12
not r12
mov rcx, rax
xor rcx, r12
or r12, rax
and r12, rcx
nop word [rax + rax]
mov eax, dword [0x1405d0e5c]
cmp eax, 0x3a
jg 0x1401d03c0
mov eax, 0xfa14a9ad
add eax, dword [0x140570a40]
lea rcx, [fcn.1401d0370]
add ecx, ecx
add ecx, 0x2d20
test ecx, eax
jne 0x1401d041e
mov r14d, dword [0x14048fd38]
mov eax, dword [0x1405d0e58]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x140570a40]
mov edx, eax
xor edx, 0x2f2921f7
and eax, 0x2f2921f7
lea eax, [rdx + rax*2]
add eax, 0xcaeb87b5
cmp ecx, eax
je 0x1401d0426
mov eax, dword [0x14048fd38]
jmp 0x1401d03e9
mov dword [rbp - 0xc], edi
test r9b, r9b
je 0x1401d043c
mov rax, qword [0x1405d0e08]
mov qword [0x1405d0e10], rax
test edi, edi
je 0x1401d08f5
cmp qword [0x1405d0908], 0
jne 0x1401d04b8
mov ecx, 0xe8
mov edx, 0xa14db22e
mov r8d, 0xc3e831e2
call fcn.1400aaaf0
lea rcx, [0x1404893e8]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
movzx ecx, byte [0x140570a44]
add cl, 0x6d
mov byte [rax + 0x18], cl
lea rcx, [0x140489448]
mov qword [rax + 0x10], rcx
mov word [rax + 8], 0
mov ecx, 0x21f1
add ecx, dword [0x140570a48]
mov word [rax + 0xa], cx
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov qword [0x1405d0908], rax
mov rax, qword [0x1405d0908]
mov rax, qword [rax + 0x38]
mov esi, esi
add rsi, rax
test bl, bl
je 0x1401d050d
lea rdi, [rbp - 8]
mov rcx, rdi
mov edx, 0x78de6fb1
mov r8d, 0x621cb55
mov r9d, 0x477898de
call fcn.1401d3c90
lea rdx, [0x1405d0e08]
lea r9, [rbp - 0xc]
mov rcx, rdi
mov r8, rsi
call fcn.1402600c0
lea rcx, [rbp - 8]
call fcn.140147d70
jmp 0x1401d08f5
test rax, rax
sete dl
movzx ecx, byte [0x1405d08b9]
xor cl, dl
mov r8d, ecx
not r8b
xor eax, eax
test r8b, dl
jne 0x1401d0582
test cl, 1
jne 0x1401d0582
mov ecx, edi
add rcx, rsi
xor eax, eax
movabs rdx, 0x86024cc3620574ac
mov r8, rsi
nop word cs:[rax + rax]
mov r9d, dword [r8 + 4]
test r9, r9
je 0x1401d0582
lea r10, [r9 - 8]
shr r10, 1
mov r11, r10
xor r11, rax
and r10, rax
mov rax, qword [0x140570a38]
add rax, rdx
imul rax, r10
add rax, r11
add r8, r9
cmp r8, rcx
jb 0x1401d0550
mov rdx, qword [0x1405d0e10]
mov rcx, qword [0x1405d0e08]
sub rdx, rcx
sar rdx, 3
add rdx, rax
mov rax, qword [0x1405d0e18]
sub rax, rcx
sar rax, 3
cmp rax, rdx
jae 0x1401d05c6
mov rax, rdx
shr rax, 0x3d
jne 0x1401d090d
lea rcx, [0x1405d0e08]
call fcn.1401d1ab0
mov eax, dword [rbp - 0xc]
mov qword [rbp - 8], 0
mov qword [rbp - 0x18], rax
test rax, rax
je 0x1401d08a5
lea r12, [r12 + r13*2]
add qword [rbp - 0x18], rsi
jmp 0x1401d0607
mov eax, dword [rsi + 4]
add rax, qword [0x1405d0928]
add rsi, rax
cmp rsi, qword [rbp - 0x18]
jae 0x1401d08a5
mov ecx, dword [rsi + 4]
mov r13d, dword [0x140570820]
lea edx, [r13 + 1]
mov dword [0x140570820], edx
mov r8d, r13d
not r8d
mov r9d, dword [0x140570a40]
mov eax, 0xfa14a9ab
add r9d, eax
mov r10d, r8d
xor r10d, r9d
mov eax, r9d
not eax
mov r11d, r13d
and r11d, eax
or r11d, r10d
not r11d
mov r10d, r13d
xor r10d, eax
and r8d, r9d
or r8d, r10d
not r8d
or r8d, r11d
xor eax, r9d
and eax, edx
xor eax, r9d
and eax, r8d
xor r13d, edx
nop word [rax + rax]
mov edx, dword [0x1405d0e5c]
cmp edx, 0x40
jg 0x1401d068f
mov edx, dword [0x1405d0e58]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1401d06a0
mov edx, dword [0x1405d0e5c]
cmp edx, 0xc
jge 0x1401d0670
jmp 0x1401d067b
or r13d, eax
not r13d
xor r15d, r15d
test r13d, r13d
jne 0x1401d06c0
test r14d, r14d
jg 0x1401d06e2
nop word cs:[rax + rax]
mov eax, dword [0x1405d0e5c]
mov edx, dword [0x140570a40]
mov r8d, 0xfa14aa07
add edx, r8d
cmp eax, edx
jge 0x1401d0790
jmp 0x1401d0770
xor eax, eax
xor r15d, r15d
jmp 0x1401d0724
not r15d
mov r8d, r15d
and r8d, edx
not edx
xor r15d, edx
and r15d, edx
mov edx, 0x5eb5650
sub edx, dword [0x140570a40]
or r15d, r8d
neg eax
mov r8d, eax
xor r8d, edx
and eax, edx
lea eax, [r8 + rax*2]
neg eax
cmp eax, r14d
jge 0x1401d06c0
movsxd rdx, eax
mov edx, dword [r12 + rdx]
nop dword [rax + rax]
mov r8d, dword [0x1405d0e58]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
jne 0x1401d075a
mov r8d, dword [0x1405d0e58]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x1401d06f0
mov r8d, dword [0x1405d0e5c]
cmp r8d, 0x53
jge 0x1401d0730
jmp 0x1401d0745
mov eax, dword [0x1405d0e58]
mov edx, dword [0x140570a40]
not edx
add edx, eax
imul edx, eax
test dl, 1
je 0x1401d07d0
nop dword [rax + rax]
mov edx, dword [0x1405d0e58]
lea eax, [rdx - 1]
imul eax, edx
mov edx, dword [0x140570a40]
mov r8d, edx
xor r8d, 0xfa14a9ae
and edx, 0x7a14a9ae
lea r8d, [r8 + rdx*2]
xor edx, edx
div r8d
test edx, edx
jne 0x1401d0790
jmp 0x1401d0770
mov eax, dword [0x140570a40]
mov edx, 0xfa14a9ac
add eax, edx
cmp ecx, eax
je 0x1401d08a5
movabs rax, 0x1fffffff8
add rax, rcx
shr rax, 1
test eax, eax
jle 0x1401d05f0
movsxd rdi, eax
dec rdi
xor ebx, ebx
nop word cs:[rax + rax]
mov ecx, dword [rsi]
mov qword [rbp - 8], rcx
shl rcx, 4
movzx eax, word [rsi + rbx*2 + 8]
add rax, rcx
mov qword [rbp - 8], rax
mov rdx, qword [0x1405d0e10]
cmp rdx, qword [0x1405d0e18]
je 0x1401d0850
mov qword [rdx], rax
add qword [0x1405d0e10], 8
cmp edi, ebx
jne 0x1401d089d
jmp 0x1401d05f0
mov eax, dword [0x14048fd30]
mov ecx, dword [0x140570a40]
mov r8d, ecx
xor r8d, 0xfa14a9ad
and ecx, 0x7a14a9ad
lea ecx, [r8 + rcx*2]
cmp r13d, 1
adc ecx, 0xffffffff
neg ecx
sub eax, r15d
and eax, ecx
add qword [0x1405d0928], rax
lea rcx, [0x1405d0e08]
lea r8, [rbp - 8]
call fcn.1401d1c20
cmp edi, ebx
je 0x1401d05f0
inc rbx
jmp 0x1401d0810
lea rcx, [0x1405d0e08]
call fcn.1401d1700
mov rdx, qword [0x1405d0e10]
mov rcx, qword [0x1405d0e08]
movabs rax, 0x523e0dcb4a60d70e
add rax, rdx
mov r8, rcx
neg r8
mov r9, rax
xor r9, r8
and r8, rax
lea rax, [r9 + r8*2]
movabs r8, 0xadc1f234b59f28f2
add r8, rax
sar r8, 3
call fcn.1401d2040
lea rax, [0x1405d0e08]
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.140125b60
int3