Function at 0x180045730
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1c8
mov rax, qword [0x1800ed0f8]
xor rax, rsp
mov qword [rsp + 0x1b0], rax
mov r12, qword [rcx + 8]
mov r10, rcx
mov r13, qword [rcx + 0x38]
mov rsi, rdx
mov qword [rsp + 0x68], rdx
mov ebx, 1
mov qword [rsp + 0xa8], r9
mov r15, r8
mov r9, qword [rcx + 0x70]
mov r14d, esi
mov eax, dword [r10 + 0x18]
sub r14d, r12d
mov dword [rsp + 0x38], eax
mov r11d, r14d
mov qword [rsp + 0x58], r8
mov ebp, 3
mov r8d, dword [rcx + 0x34]
mov rcx, qword [rcx + 0x10]
lea rdx, [rax + r12]
add rax, rcx
mov qword [rsp + 0x90], rcx
mov ecx, dword [r10 + 0x100]
mov qword [rsp + 0xa0], rax
mov eax, esi
sub eax, r12d
mov qword [rsp + 0x98], rdx
mov dword [rsp + 0x34], eax
mov edx, ebx
shl edx, cl
mov eax, r14d
mov ecx, dword [r10 + 0x1c]
sub r11d, edx
sub eax, ecx
mov qword [rsp + 0x88], r9
cmp eax, edx
mov qword [rsp + 0x50], r13
mov eax, dword [r10 + 0x10c]
cmovbe r11d, ecx
mov dword [rsp + 0x44], r8d
cmp dword [r10 + 0x28], 0
mov qword [rsp + 0x80], r12
cmovne r11d, ecx
mov dword [rsp + 0x48], r14d
mov ecx, 6
mov dword [rsp + 0x64], r11d
cmp eax, ecx
mov dword [rsp + 0x40], 0x3f
cmovb ecx, eax
mov rax, qword [r10 + 0x60]
shl ebx, cl
xor edi, edi
movabs rcx, 0xcf1bbcdcbf9b0000
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x3c], ebx
cmp dword [r10 + 0x12c], edi
jne 0x180045b92
mov r11d, dword [r10 + 0x2c]
lea edx, [rbp + 0x35]
mov eax, dword [rsp + 0x34]
mov r14, r9
sub eax, r11d
mov r9d, r8d
mov r8, r12
cmp eax, 0x180
jbe 0x180045a56
lea r8d, [r11 + 0x60]
mov qword [rsp + 0x78], r12
cmp r11d, r8d
jae 0x180045968
mov rbp, qword [rsp + 0x50]
lea r13, [r12 + 8]
mov r12, qword [rsp + 0x88]
mov ebx, edx
sub ebx, r9d
mov r14d, r11d
add r13, r11
mov r15, rcx
mov esi, r8d
nop word [rax + rax]
mov rdx, qword [r13]
mov ecx, ebx
imul rdx, r15
xor rdx, qword [r10 + 0x60]
shr rdx, cl
mov eax, edx
shr rax, 2
and eax, 0x3fffffc0
prefetcht0 byte [r12 + rax*4]
prefetcht0 byte [r12 + rax*4 + 0x40]
prefetcht0 byte [rax + rbp]
prefetcht0 byte [rax + rbp + 0x20]
mov rax, r14
lea r13, [r13 + 1]
and eax, 7
mov r9d, dword [r10 + rax*4 + 0x40]
mov r8d, r9d
mov dword [r10 + rax*4 + 0x40], edx
mov eax, edi
shr r8, 2
and r8d, 0x3fffffc0
movzx ecx, byte [r8 + rbp]
lea rdx, [r8 + rbp]
dec ecx
and ecx, 0x3f
cmove eax, dword [rsp + 0x40]
inc r14
add ecx, eax
mov byte [rdx], cl
mov eax, ecx
add rax, r8
mov byte [rdx + rcx], r9b
mov dword [r12 + rax*4], r11d
inc r11d
cmp r11d, esi
jb 0x1800458b0
mov rax, qword [r10 + 8]
mov ebp, 3
mov rsi, qword [rsp + 0x68]
movabs rcx, 0xcf1bbcdcbf9b0000
mov ebx, dword [rsp + 0x3c]
mov r15, qword [rsp + 0x58]
mov r12, qword [rsp + 0x80]
lea edx, [rbp + 0x35]
mov qword [rsp + 0x78], rax
mov r11d, dword [rsp + 0x34]
lea rax, [rsi + 1]
mov r8d, dword [r10 + 0x34]
add r11d, 0xffffffe0
mov r14, qword [r10 + 0x70]
mov r13, qword [r10 + 0x38]
mov dword [rsp + 0x30], eax
sub dword [rsp + 0x30], r11d
lea r9, [r11 + r12]
sub dword [rsp + 0x30], r12d
inc dword [rsp + 0x30]
cmp r9, rax
mov dword [rsp + 0x60], r8d
mov eax, dword [rsp + 0x30]
cmova eax, edi
mov dword [rsp + 0x30], 8
cmp eax, 8
mov r8d, r11d
cmova eax, dword [rsp + 0x30]
mov dword [rsp + 0x30], eax
add eax, r11d
cmp r11d, eax
jae 0x180045a48
mov ebx, dword [rsp + 0x30]
mov ecx, edx
sub ecx, dword [rsp + 0x60]
movabs r15, 0xcf1bbcdcbf9b0000
nop dword [rax]
mov rdx, qword [r9]
imul rdx, r15
xor rdx, qword [r10 + 0x60]
shr rdx, cl
mov eax, edx
shr rax, 2
and eax, 0x3fffffc0
prefetcht0 byte [r14 + rax*4]
prefetcht0 byte [r14 + rax*4 + 0x40]
prefetcht0 byte [rax + r13]
prefetcht0 byte [rax + r13 + 0x20]
mov rax, r8
lea r9, [r9 + 1]
and eax, 7
inc r8
mov dword [r10 + rax*4 + 0x40], edx
sub rbx, 1
jne 0x1800459e0
mov r14, qword [r10 + 0x70]
movabs rcx, 0xcf1bbcdcbf9b0000
mov r13, qword [r10 + 0x38]
mov r8, qword [r10 + 8]
mov ebx, dword [rsp + 0x3c]
mov r15, qword [rsp + 0x58]
jmp 0x180045a4d
mov r8, qword [rsp + 0x78]
mov r9d, dword [r10 + 0x34]
mov edx, 0x38
mov eax, dword [rsp + 0x34]
cmp r11d, eax
jae 0x180045b31
mov esi, edx
mov ebp, r11d
sub esi, r9d
lea rbx, [r11 + 8]
add rbx, r8
movabs r15, 0xcf1bbcdcbf9b0000
mov r12d, eax
nop
mov rdx, qword [rbx]
mov ecx, esi
imul rdx, r15
xor rdx, qword [r10 + 0x60]
shr rdx, cl
mov eax, edx
shr rax, 2
and eax, 0x3fffffc0
prefetcht0 byte [r14 + rax*4]
prefetcht0 byte [r14 + rax*4 + 0x40]
prefetcht0 byte [rax + r13]
prefetcht0 byte [rax + r13 + 0x20]
mov rax, rbp
lea rbx, [rbx + 1]
and eax, 7
mov r9d, dword [r10 + rax*4 + 0x40]
mov r8d, r9d
mov dword [r10 + rax*4 + 0x40], edx
mov eax, edi
shr r8, 2
and r8d, 0x3fffffc0
movzx ecx, byte [r8 + r13]
lea rdx, [r8 + r13]
dec ecx
and ecx, 0x3f
cmove eax, dword [rsp + 0x40]
inc rbp
add ecx, eax
mov byte [rdx], cl
mov eax, ecx
add rax, r8
mov byte [rdx + rcx], r9b
mov dword [r14 + rax*4], r11d
inc r11d
cmp r11d, r12d
jb 0x180045a80
mov rsi, qword [rsp + 0x68]
mov ebp, 3
mov ebx, dword [rsp + 0x3c]
movabs rcx, 0xcf1bbcdcbf9b0000
mov r15, qword [rsp + 0x58]
mov r12, qword [rsp + 0x80]
mov eax, dword [rsp + 0x34]
mov r8d, dword [rsp + 0x48]
mov r9, qword [rsp + 0x88]
mov dword [r10 + 0x2c], eax
mov rdx, qword [r8 + r12 + 8]
imul rdx, rcx
mov ecx, 0x38
xor rdx, qword [rsp + 0x70]
sub ecx, dword [rsp + 0x44]
shr rdx, cl
mov eax, edx
shr rax, 2
and eax, 0x3fffffc0
prefetcht0 byte [r9 + rax*4]
prefetcht0 byte [r9 + rax*4 + 0x40]
mov r13, qword [rsp + 0x50]
prefetcht0 byte [rax + r13]
prefetcht0 byte [rax + r13 + 0x20]
and r8d, 7
mov r11d, dword [r10 + r8*4 + 0x40]
mov dword [r10 + r8*4 + 0x40], edx
jmp 0x180045bab
mov r11, qword [rsi]
imul r11, rcx
mov ecx, 0x38
mov dword [r10 + 0x2c], r14d
xor r11, rax
sub ecx, r8d
shr r11, cl
add dword [r10 + 0x68], r11d
mov eax, r11d
shr rax, 2
mov r14, rdi
and eax, 0x3fffffc0
movdqu xmm0, xmmword [rax + r13]
lea rcx, [r9 + rax*4]
lea r9, [rax + r13]
mov qword [rsp + 0x50], rcx
movzx r13d, byte [r9]
mov qword [rsp + 0x70], r9
movsx eax, r11b
movd xmm2, eax
punpcklbw xmm2, xmm2
punpcklwd xmm2, xmm2
pshufd xmm2, xmm2, 0
movdqa xmm1, xmm2
pcmpeqb xmm1, xmm0
movdqu xmm0, xmmword [r9 + 0x10]
pmovmskb r8d, xmm1
movdqu xmm1, xmmword [r9 + 0x20]
pcmpeqb xmm0, xmm2
pmovmskb edx, xmm0
pcmpeqb xmm1, xmm2
movdqu xmm0, xmmword [r9 + 0x30]
pmovmskb eax, xmm1
pcmpeqb xmm0, xmm2
pmovmskb r9d, xmm0
shl r9, 0x10
or r9, rax
movsxd rax, edx
shl r9, 0x10
mov edx, r13d
or r9, rax
and edx, 0x3f
movsxd rax, r8d
mov ecx, edx
shl r9, 0x10
neg ecx
or r9, rax
and ecx, 0x3f
mov r8, r9
shl r8, cl
mov ecx, edx
mov rdx, qword [rsp + 0x50]
shr r9, cl
or r8, r9
jbe 0x180045cbd
mov r9d, dword [rsp + 0x38]
mov r15, qword [rsp + 0x90]
mov esi, dword [rsp + 0x64]
test ebx, ebx
je 0x180045cb3
bsf rcx, r8
add ecx, r13d
and ecx, 0x3f
mov ecx, dword [rdx + rcx*4]
je 0x180045caa
cmp ecx, esi
jb 0x180045cb3
cmp ecx, r9d
jb 0x180045c98
prefetcht0 byte [rcx + r12]
jmp 0x180045c9d
prefetcht0 byte [rcx + r15]
mov dword [rsp + r14*4 + 0xb0], ecx
inc r14
dec ebx
lea rax, [r8 - 1]
and r8, rax
ja 0x180045c75
mov rsi, qword [rsp + 0x68]
mov r15, qword [rsp + 0x58]
lea ecx, [r13 - 1]
mov eax, edi
and ecx, 0x3f
mov r8d, 0x3f
cmove eax, r8d
add ecx, eax
mov rax, qword [rsp + 0x70]
mov byte [rax], cl
mov byte [rcx + rax], r11b
mov eax, dword [r10 + 0x2c]
mov dword [rdx + rcx*4], eax
inc dword [r10 + 0x2c]
test r14, r14
je 0x180045d94
mov ecx, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x48]
nop word [rax + rax]
mov ebx, dword [rsp + rdi*4 + 0xb0]
cmp ebx, ecx
jb 0x180045d26
mov eax, dword [rsi + rbp - 3]
lea rdx, [rbx + r12]
cmp dword [rdx + rbp - 3], eax
jne 0x180045d88
mov r8, r15
mov rcx, rsi
call fcn.180037e00
jmp 0x180045d60
mov rdx, qword [rsp + 0x90]
mov eax, dword [rsi]
add rdx, rbx
cmp dword [rdx], eax
jne 0x180045d88
mov rax, qword [rsp + 0x98]
lea rcx, [rsi + 4]
mov r9, qword [rsp + 0xa0]
add rdx, 4
mov r8, r15
mov qword [rsp + 0x20], rax
call fcn.180037ea0
add rax, 4
cmp rax, rbp
jbe 0x180045d84
mov rdx, qword [rsp + 0xa8]
mov ecx, r13d
sub ecx, ebx
mov rbp, rax
add ecx, 3
mov qword [rdx], rcx
lea rcx, [rax + rsi]
cmp rcx, r15
je 0x180045d97
mov ecx, dword [rsp + 0x38]
inc rdi
cmp rdi, r14
jb 0x180045d00
mov rax, rbp
mov rcx, qword [rsp + 0x1b0]
xor rcx, rsp
call fcn.1800b2170
add rsp, 0x1c8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret