Function at 0x1800021f0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x90]
sub rsp, 0x190
lea r14, [0x180001d00]
xor r9d, r9d
mov r8, r14
lea rcx, [rsp + 0x40]
mov rdx, r14
call fcn.180001e20
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.180001ea0
mov rsi, qword [rbp + 0xb0]
lea rax, [rsp + 0x40]
mov rdi, qword [rbp + 0xb0]
lea r9, [0x180001da0]
mov rdx, rsi
mov qword [rsp + 0x38], rax
mov rcx, rdi
lea r8, [0x180001d10]
call fcn.1800015c0
mov rbx, rax
test rax, rax
je 0x180001ffb
mov r8d, 0xe8
lea rdx, str.F:d64_LargeDLLLargeDLLMain.cpp
lea rcx, str.handle__NULL
call fcn.18000a614
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xe
je 0x18000201f
mov r8d, 0xe9
lea rdx, str.F:d64_LargeDLLLargeDLLMain.cpp
lea rcx, str.GetLastError____ERROR_OUTOFMEMORY
call fcn.18000a614
cmp dword [rsp + 0x44], 0
je 0x18000203f
mov r8d, 0xea
lea rdx, str.F:d64_LargeDLLLargeDLLMain.cpp
lea rcx, str.expected_calls.current_free_call__0
call fcn.18000a614
mov rcx, rbx
call fcn.180001b00
cmp dword [rsp + 0x44], 0
je 0x180002067
mov r8d, 0xed
lea rdx, str.F:d64_LargeDLLLargeDLLMain.cpp
lea rcx, str.expected_calls.current_free_call__0
call fcn.18000a614
lea r15, [0x180001550]
mov qword [rsp + 0x30], 0
mov r9, r15
mov qword [rsp + 0x28], r14
mov r8, r15
mov qword [rsp + 0x20], r15
mov rdx, r15
lea rcx, [rsp + 0x40]
call fcn.180001e20
lea r14, [0x180001580]
xor r8d, r8d
mov rdx, r14
lea rcx, [rsp + 0x40]
call fcn.180001ea0
lea rax, [rsp + 0x40]
mov rdx, rsi
lea r9, [0x180001da0]
mov qword [rsp + 0x38], rax
lea r8, [0x180001d10]
mov rcx, rdi
call fcn.1800015c0
mov ebx, dword [rsp + 0x44]
mov rcx, rax
call fcn.180001b00
cmp dword [rsp + 0x44], ebx
je 0x1800020f9
mov r8d, 0x105
lea rdx, str.F:d64_LargeDLLLargeDLLMain.cpp
lea rcx, str.expected_calls.current_free_call__free_calls_after_loading
call fcn.18000a614
lea rax, [rsp + 0x40]
mov qword [rbp - 0x18], r14
lea r9, [0x180001da0]
mov qword [rsp + 0x38], rax
mov r8, r15
mov qword [rbp - 0x10], r14
mov rdx, rsi
mov qword [rbp - 8], r14
mov rcx, rdi
mov qword [rbp], r14
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], r14
mov qword [rbp + 0x18], r14
mov qword [rbp + 0x20], r14
mov qword [rbp + 0x28], r14
mov qword [rbp + 0x30], r14
mov qword [rbp + 0x38], r14
mov qword [rbp + 0x40], r14
mov qword [rbp + 0x48], r14
mov qword [rbp + 0x50], r14
mov qword [rbp + 0x58], r14
mov qword [rbp + 0x60], r14
mov qword [rbp + 0x68], r14
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x78], r14
mov qword [rbp + 0x80], r14
mov dword [rsp + 0x44], 0
call fcn.1800015c0
mov rsi, rax
test rax, rax
jne 0x180002194
mov r8d, 0x114
lea rdx, str.F:d64_LargeDLLLargeDLLMain.cpp
lea rcx, str.handle___NULL
call fcn.18000a614
mov ebx, dword [rsp + 0x44]
mov rcx, rsi
call fcn.180001b00
lea eax, [rbx + 1]
cmp dword [rsp + 0x44], eax
je 0x1800021c2
mov r8d, 0x118
lea rdx, str.F:d64_LargeDLLLargeDLLMain.cpp
lea rcx, str.expected_calls.current_free_call__free_calls_after_loading__1
call fcn.18000a614
mov rcx, rdi
lea r11, [rsp + 0x190]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
jmp fcn.1800069e0
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x34d50]
mov eax, 0x34e50
call fcn.180017cd0
sub rsp, rax
mov ecx, 0x12e60
call fcn.180002620
mov rdi, rax
mov ebx, 0x12b14
nop
mov r8d, 0x12e60
lea rdx, [0x1800405d0]
mov rcx, rdi
call fcn.1800044e0
sub rbx, 1
jne 0x180002230
mov ecx, dword [0x180029a40]
xorps xmm0, xmm0
add ecx, 0xa0831286
mov eax, 0x78dc555d
xor ecx, 0xa0831286
ror ecx, 0x10
sub eax, ecx
xor eax, 0x2302374
mov ecx, eax
shl rcx, 8
shr rax, 0x18
or rax, rcx
movabs rcx, 0x283327c0c5ce1
add rax, rcx
movabs rcx, 0xfffdc78cdeeeef3a
xor rax, rcx
mov ecx, 0x408
mov byte [rsp + 0x50], al
xor eax, eax
mov qword [rbp - 0x3f], rax
mov dword [rbp - 0x37], eax
mov word [rbp - 0x33], ax
mov byte [rbp - 0x31], al
movups xmmword [rsp + 0x51], xmm0
movups xmmword [rsp + 0x61], xmm0
movups xmmword [rsp + 0x71], xmm0
movups xmmword [rbp - 0x7f], xmm0
movups xmmword [rbp - 0x6f], xmm0
movups xmmword [rbp - 0x5f], xmm0
movups xmmword [rbp - 0x4f], xmm0
call fcn.1800025e4
mov r8d, 0x125d0
lea rdx, section.RT_DATA
lea rcx, [rbp - 0x30]
mov rsi, rax
call fcn.1800044e0
mov r8d, 0xf940
lea rdx, [0x180053430]
lea rcx, [rbp + 0x125a0]
call fcn.1800044e0
mov r8d, 0x12e60
lea rdx, [0x1800405d0]
lea rcx, [rbp + 0x21ee0]
call fcn.1800044e0
lea rax, [rsp + 0x50]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x180002330
movdqa xmm2, xmmword [0x180023b40]
lea rdx, [rsi + 0x28]
xor r14d, r14d
mov ecx, 8
mov qword [rsi], r14
nop dword [rax]
nop word [rax + rax]
lea eax, [rcx - 8]
movd xmm0, eax
lea rdx, [rdx + 0x40]
pshufd xmm0, xmm0, 0
lea eax, [rcx - 4]
paddd xmm0, xmm2
movd xmm1, eax
movdqu xmmword [rdx - 0x60], xmm0
lea eax, [rcx + 4]
pshufd xmm1, xmm1, 0
paddd xmm1, xmm2
movd xmm0, ecx
movdqu xmmword [rdx - 0x50], xmm1
add ecx, 0x10
movd xmm1, eax
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
paddd xmm0, xmm2
movdqu xmmword [rdx - 0x40], xmm0
lea eax, [rcx - 8]
paddd xmm1, xmm2
movdqu xmmword [rdx - 0x30], xmm1
cmp eax, 0x100
jl 0x180002360
mov r9d, r14d
mov r11d, r14d
mov r10, r14
nop dword [rax + rax]
mov ebx, dword [rsi + r10*4 + 8]
mov eax, r9d
cdq
inc r9d
idiv r8d
mov eax, r11d
movsxd rcx, edx
cdq
idiv r8d
add dl, byte [rsp + rcx + 0x50]
add dl, bl
add dl, r11b
movzx r11d, dl
mov eax, dword [rsi + r11*4 + 8]
mov dword [rsi + r10*4 + 8], eax
inc r10
cmp r9d, r8d
mov dword [rsi + r11*4 + 8], ebx
mov eax, r14d
cmovl eax, r9d
mov r9d, eax
cmp r10, 0x100
jl 0x1800023d0
mov eax, dword [rsi]
mov r15d, 0x9c40
mov ecx, dword [rsi + 4]
nop dword [rax]
inc al
mov edx, r14d
movzx r12d, al
mov r11d, dword [rsi + r12*4 + 8]
test r11b, r11b
movzx ebx, r11b
lea eax, [rcx + r11]
movzx r13d, al
mov eax, r14d
sete al
mov r9d, dword [rsi + r13*4 + 8]
mov dword [rsi + r12*4 + 8], r9d
mov dword [rsi + r13*4 + 8], r11d
movzx ecx, byte [rsi + r12*4 + 8]
mov r10d, ecx
add eax, dword [rsi + rcx*4 + 8]
mov dword [rsi + r12*4 + 8], eax
test cl, cl
mov ecx, dword [rsi + rbx*4 + 8]
lea eax, [r12 + r13]
sete dl
add al, r9b
add al, r11b
add ecx, edx
mov dword [rsi + r13*4 + 8], ecx
movzx ecx, al
movzx eax, byte [rsi + rcx*4 + 8]
xor byte [rbp + r15 - 0x30], al
inc r15
mov eax, dword [rsi + rcx*4 + 8]
movzx ecx, r13b
xor dword [rsi + r10*4 + 8], eax
mov eax, dword [rsi + r12*4 + 8]
add eax, edx
xor dword [rsi + rbx*4 + 8], eax
movzx eax, r12b
cmp r15, 0x34d70
jl 0x180002430
mov dword [rsi], r12d
mov r8d, 0x162c15
mov dword [rsi + 4], r13d
xor eax, eax
xor ecx, ecx
cpuid
sub r8, 1
jne 0x1800024d4
lea rax, [rbp + 0x34d80]
mov dword [rbp + 0x34d80], r14d
lea r9, [0x180001580]
mov qword [rsp + 0x38], rax
lea r8, [0x180001f20]
mov edx, 0x2b130
lea rcx, [rbp + 0x9c10]
call fcn.1800015c0
mov rbx, rax
test rax, rax
jne 0x180002533
mov r8d, 0x148
lea rdx, str.F:d64_LargeDLLLargeDLLMain.cpp
lea rcx, str.handle___NULL
call fcn.18000a614
mov rcx, qword [rbx]
mov r8, qword [rbx + 8]
cmp dword [rcx + 0x8c], r14d
je 0x180002585
mov eax, dword [rcx + 0x88]
add rax, r8
cmp dword [rax + 0x18], r14d
je 0x180002585
mov edx, dword [rax + 0x14]
test edx, edx
je 0x180002585
mov r9d, dword [rax + 0x10]
cmp r9d, 1
ja 0x180002585
mov ecx, 1
sub ecx, r9d
cmp ecx, edx
ja 0x180002585
mov eax, dword [rax + 0x1c]
lea ecx, [rcx*4]
add rax, r8
mov r14d, dword [rcx + rax]
add r14, r8
jmp 0x180002590
mov ecx, 0x7f
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, 1
xor ecx, ecx
call r14
mov edx, eax
xor ecx, ecx
call fcn.180001c20
mov rcx, rbx
call fcn.180001b00
lea r11, [rsp + 0x34e50]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
jmp 0x180001f60