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

Disassembly:
test r9d, r9d
je 0x180004d34
mov r11, rsp
push r13
sub rsp, 0x120
mov rax, qword [0x180039010]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov r10d, dword [rcx + 0x34]
xor eax, eax
mov qword [rsp + 0x88], rax
mov r13, r8
mov eax, dword [rcx + 0x18]
mov qword [r11 + 0x10], rbx
mov ebx, dword [rcx + 4]
mov dword [rsp + 0x5c], eax
mov eax, dword [rcx + 0x1c]
mov qword [r11 - 0x10], rbp
mov ebp, dword [rcx + 0x10]
mov dword [rsp + 0x60], eax
mov eax, dword [rcx + 0x20]
mov qword [r11 - 0x18], rsi
mov esi, dword [rcx + 0xc]
mov dword [rsp + 0x2c], eax
mov eax, dword [rcx + 0x24]
mov qword [r11 - 0x20], rdi
mov edi, dword [rcx + 8]
mov dword [rsp + 0x30], eax
mov eax, dword [rcx + 0x28]
mov dword [rsp + 0x34], eax
mov eax, dword [rcx + 0x2c]
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x30], r14
mov r14d, dword [rcx + 0x14]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x38]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 0x3c]
mov qword [rsp + 0x70], r8
mov r8d, dword [rcx]
mov qword [r11 - 0x38], r15
mov r11d, dword [rcx + 0x30]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x44], r9d
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x90], rcx
mov dword [rsp + 0x24], r8d
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x4c], edi
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x54], ebp
mov dword [rsp + 0x58], r14d
mov dword [rsp + 8], r11d
mov dword [rsp + 0x10], r10d
nop
cmp r9d, 0x40
jae 0x1800047e7
test r9d, r9d
je 0x1800047c5
lea rax, [rsp + 0xa0]
mov r8d, r9d
sub rdx, rax
lea rcx, [rsp + 0xa0]
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x1800047b0
mov r8d, dword [rsp + 0x24]
mov qword [rsp + 0x88], r13
lea rdx, [rsp + 0xa0]
lea r13, [rsp + 0xa0]
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], r13
mov ecx, dword [rsp + 0x5c]
mov r13d, edi
mov eax, dword [rsp + 0x60]
mov r12d, ebx
mov r9d, dword [rsp + 0x2c]
mov edx, esi
mov ebx, dword [rsp + 0x30]
mov edi, ebp
mov ebp, dword [rsp + 0x3c]
mov r15d, r8d
mov dword [rsp + 0x18], ecx
mov esi, r10d
mov ecx, dword [rsp + 0x38]
mov dword [rsp], ecx
mov ecx, dword [rsp + 0x40]
mov dword [rsp + 0x1c], eax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x14], r14d
mov dword [rsp + 4], eax
mov qword [rsp + 0x78], 4
nop dword [rax]
add r12d, dword [rsp + 0x14]
add r15d, edi
add r13d, dword [rsp + 0x18]
xor esi, r12d
xor r11d, r15d
xor ebp, r13d
mov r8d, r11d
shl r11d, 0x10
shr r8d, 0x10
or r8d, r11d
add r9d, r8d
mov eax, r9d
xor eax, edi
mov ecx, eax
shl eax, 0xc
shr ecx, 0x14
or ecx, eax
add r15d, ecx
xor r8d, r15d
mov edi, r8d
shl r8d, 8
shr edi, 0x18
or edi, r8d
mov r8d, esi
shr r8d, 0x10
add r9d, edi
shl esi, 0x10
mov eax, r9d
xor eax, ecx
mov dword [rsp + 0x28], r9d
mov r9d, dword [rsp + 4]
mov r14d, eax
shl eax, 7
or r8d, esi
add ebx, r8d
shr r14d, 0x19
or r14d, eax
mov eax, ebx
xor eax, dword [rsp + 0x14]
mov ecx, eax
shl eax, 0xc
shr ecx, 0x14
or ecx, eax
add r12d, ecx
xor r8d, r12d
mov esi, r8d
shl r8d, 8
shr esi, 0x18
or esi, r8d
mov r8d, ebp
shl ebp, 0x10
add ebx, esi
shr r8d, 0x10
mov eax, ebx
xor eax, ecx
mov dword [rsp + 0xc], ebx
mov r10d, eax
or r8d, ebp
shl eax, 7
add r9d, r8d
shr r10d, 0x19
or r10d, eax
mov eax, r9d
xor eax, dword [rsp + 0x18]
mov ecx, eax
shl eax, 0xc
shr ecx, 0x14
or ecx, eax
add r13d, ecx
xor r8d, r13d
mov ebp, r8d
shl r8d, 8
shr ebp, 0x18
or ebp, r8d
add r9d, ebp
mov eax, r9d
mov dword [rsp + 4], r9d
xor eax, ecx
mov r11d, eax
shr r11d, 0x19
shl eax, 7
add edx, dword [rsp + 0x1c]
or r11d, eax
mov eax, dword [rsp + 0x20]
add r15d, r10d
mov ebx, dword [rsp]
xor eax, edx
mov r8d, eax
add r12d, r11d
shl eax, 0x10
xor edi, r12d
shr r8d, 0x10
or r8d, eax
add ebx, r8d
mov eax, ebx
xor eax, dword [rsp + 0x1c]
mov ecx, eax
shl eax, 0xc
shr ecx, 0x14
or ecx, eax
add edx, ecx
xor r8d, edx
mov r9d, r8d
shl r8d, 8
shr r9d, 0x18
or r9d, r8d
add ebx, r9d
xor r9d, r15d
mov r8d, r9d
mov dword [rsp], ebx
shr r8d, 0x10
mov eax, ebx
xor eax, ecx
shl r9d, 0x10
mov ebx, eax
or r8d, r9d
mov r9d, dword [rsp + 4]
shl eax, 7
add r9d, r8d
shr ebx, 0x19
or ebx, eax
mov eax, r9d
xor eax, r10d
mov r10d, dword [rsp]
mov ecx, eax
shl eax, 0xc
shr ecx, 0x14
or ecx, eax
add r15d, ecx
xor r8d, r15d
mov eax, r8d
shl r8d, 8
shr eax, 0x18
or eax, r8d
mov r8d, edi
add r9d, eax
mov dword [rsp + 0x20], eax
shr r8d, 0x10
mov eax, r9d
xor eax, ecx
shl edi, 0x10
mov ecx, eax
mov dword [rsp + 4], r9d
shr ecx, 0x19
or r8d, edi
shl eax, 7
add r10d, r8d
or ecx, eax
mov eax, r10d
xor eax, r11d
mov dword [rsp + 0x14], ecx
mov ecx, eax
shl eax, 0xc
shr ecx, 0x14
or ecx, eax
add r12d, ecx
xor r8d, r12d
mov r11d, r8d
shl r8d, 8
shr r11d, 0x18
or r11d, r8d
add r10d, r11d
mov r9d, dword [rsp + 0x28]
add r13d, ebx
xor esi, r13d
mov dword [rsp], r10d
mov r8d, esi
add edx, r14d
shr r8d, 0x10
xor ebp, edx
shl esi, 0x10
mov eax, r10d
xor eax, ecx
or r8d, esi
mov ecx, eax
add r9d, r8d
shl eax, 7
shr ecx, 0x19
or ecx, eax
mov eax, r9d
xor eax, ebx
mov dword [rsp + 0x18], ecx
mov ebx, dword [rsp + 0xc]
mov ecx, eax
shl eax, 0xc
shr ecx, 0x14
or ecx, eax
add r13d, ecx
xor r8d, r13d
mov esi, r8d
shl r8d, 8
shr esi, 0x18
or esi, r8d
mov r8d, ebp
shl ebp, 0x10
add r9d, esi
shr r8d, 0x10
mov eax, r9d
xor eax, ecx
or r8d, ebp
mov ecx, eax
add ebx, r8d
shl eax, 7
shr ecx, 0x19
or ecx, eax
mov eax, ebx
xor eax, r14d
mov dword [rsp + 0x1c], ecx
mov ecx, eax
shl eax, 0xc
shr ecx, 0x14
or ecx, eax
add edx, ecx
xor r8d, edx
mov ebp, r8d
shl r8d, 8
shr ebp, 0x18
or ebp, r8d
add ebx, ebp
mov eax, ebx
xor eax, ecx
mov edi, eax
shl eax, 7
shr edi, 0x19
or edi, eax
sub qword [rsp + 0x78], 1
jne 0x180004840
mov eax, dword [rsp + 0x48]
mov r14d, dword [rsp + 0x18]
add eax, r12d
add r14d, dword [rsp + 0x5c]
mov r12d, dword [rsp + 0x54]
mov r8d, dword [rsp + 0x3c]
add r12d, edi
mov edi, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x20]
add edi, ebx
add ecx, dword [rsp + 0x40]
mov ebx, dword [rsp + 4]
add ebx, dword [rsp + 0x34]
mov dword [rsp], esi
mov esi, dword [rsp + 0x2c]
add esi, r9d
mov dword [rsp + 0x28], r11d
mov r11d, dword [rsp + 0x38]
mov r9d, dword [rsp]
add r11d, r10d
mov r10d, dword [rsp + 0x28]
add r10d, dword [rsp + 8]
mov dword [rsp + 0x80], ebp
add r8d, dword [rsp + 0x80]
mov ebp, dword [rsp + 0x1c]
add ebp, dword [rsp + 0x60]
mov dword [rsp + 0x84], r15d
mov r15d, dword [rsp + 0x14]
add r15d, dword [rsp + 0x58]
mov dword [rsp + 0xc], edx
mov rdx, qword [rsp + 0x68]
xor eax, dword [rdx + 4]
xor r12d, dword [rdx + 0x10]
xor r15d, dword [rdx + 0x14]
xor r14d, dword [rdx + 0x18]
xor ebp, dword [rdx + 0x1c]
xor esi, dword [rdx + 0x20]
xor edi, dword [rdx + 0x24]
xor ebx, dword [rdx + 0x28]
xor r11d, dword [rdx + 0x2c]
xor r10d, dword [rdx + 0x30]
xor r8d, dword [rdx + 0x38]
xor ecx, dword [rdx + 0x3c]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x4c]
add eax, r13d
mov r13d, dword [rsp + 0xc]
xor eax, dword [rdx + 8]
add r13d, dword [rsp + 0x50]
xor r13d, dword [rdx + 0xc]
mov dword [rsp + 0x68], eax
mov dword [rsp + 0xc], r13d
mov r13d, dword [rsp + 0x10]
add r9d, r13d
xor r9d, dword [rdx + 0x34]
add dword [rsp + 8], 1
lea eax, [r13 + 1]
cmovne eax, r13d
mov r13, qword [rsp + 0x70]
mov dword [rsp + 0x10], eax
mov eax, dword [rsp + 0x84]
add eax, dword [rsp + 0x24]
xor eax, dword [rdx]
mov dword [r13], eax
mov eax, dword [rsp + 0x78]
mov dword [r13 + 4], eax
mov eax, dword [rsp + 0x68]
mov dword [r13 + 8], eax
mov rax, qword [rsp + 0x70]
mov r13d, dword [rsp + 0xc]
mov dword [rax + 0xc], r13d
mov r13, rax
mov dword [rax + 0x10], r12d
mov dword [rax + 0x14], r15d
mov dword [rax + 0x18], r14d
mov dword [rax + 0x1c], ebp
mov dword [rax + 0x20], esi
mov dword [rax + 0x24], edi
mov dword [rax + 0x28], ebx
mov dword [rax + 0x2c], r11d
mov dword [rax + 0x30], r10d
mov dword [rax + 0x34], r9d
mov r9d, dword [rsp + 0x44]
mov dword [rax + 0x38], r8d
mov dword [rax + 0x3c], ecx
cmp r9d, 0x40
jbe 0x180004c9b
mov r10d, dword [rsp + 0x10]
add r9d, 0xffffffc0
mov r11d, dword [rsp + 8]
add r13, 0x40
mov r8d, dword [rsp + 0x24]
add rdx, 0x40
mov ebx, dword [rsp + 0x48]
mov edi, dword [rsp + 0x4c]
mov esi, dword [rsp + 0x50]
mov ebp, dword [rsp + 0x54]
mov r14d, dword [rsp + 0x58]
mov qword [rsp + 0x68], rdx
mov dword [rsp + 0x44], r9d
mov qword [rsp + 0x70], r13
jmp 0x180004780
mov r15, qword [rsp + 0xf0]
lea eax, [r9 - 1]
mov r14, qword [rsp + 0xf8]
mov r12, qword [rsp + 0x100]
mov rdi, qword [rsp + 0x108]
mov rsi, qword [rsp + 0x110]
mov rbp, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x138]
cmp eax, 0x3e
ja 0x180004d01
mov rcx, qword [rsp + 0x88]
mov rdx, r9
sub r13, rcx
nop word [rax + rax]
movzx eax, byte [rcx + r13]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x180004cf0
mov rax, qword [rsp + 0x90]
mov r11d, dword [rsp + 8]
mov r10d, dword [rsp + 0x10]
mov dword [rax + 0x30], r11d
mov dword [rax + 0x34], r10d
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.18001f3a0
add rsp, 0x120
pop r13
ret