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

Disassembly:
push rbx
mov r11d, r8d
mov rbx, rdx
mov r10, rcx
test r8d, r8d
je 0x14003f147
cmp dword [rcx + 0x90], 0
mov qword [rsp + 0x28], r14
je 0x14003e947
test r11d, r11d
je 0x14003e947
movzx ecx, byte [r10 + 0x8c]
dec r11d
xor cl, byte [rbx]
inc rbx
mov byte [r9], cl
inc r9
shr dword [r10 + 0x8c], 8
add dword [r10 + 0x90], 0xfffffff8
cmp dword [r10 + 0x90], 0
jne 0x14003e912
mov qword [rsp + 0x20], rdi
lea r14, [0x140000000]
cmp r11d, 0x44
jb 0x14003efcb
mov eax, 0xf0f0f0f1
mul r11d
shr edx, 6
mov edi, edx
nop word [rax + rax]
movzx eax, byte [r10 + 3]
mov ecx, dword [r10]
mov edx, dword [r10 + 4]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x3c]
xor ecx, dword [r10 + 0x10]
add edx, ecx
mov dword [r10], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 8]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x1c]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x38]
xor edx, dword [rbx]
mov dword [r9], edx
movzx eax, byte [r10 + 7]
mov ecx, dword [r10 + 4]
mov edx, dword [r10 + 8]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x40]
xor ecx, dword [r10 + 0x14]
add edx, ecx
mov dword [r10 + 4], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0xc]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x20]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x3c]
xor edx, dword [rbx + 4]
mov dword [r9 + 4], edx
movzx eax, byte [r10 + 0xb]
mov ecx, dword [r10 + 8]
mov edx, dword [r10 + 0xc]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10]
xor ecx, dword [r10 + 0x18]
add edx, ecx
mov dword [r10 + 8], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x10]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x24]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x40]
xor edx, dword [rbx + 8]
mov dword [r9 + 8], edx
movzx eax, byte [r10 + 0xf]
mov ecx, dword [r10 + 0xc]
mov edx, dword [r10 + 0x10]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x1c]
xor ecx, dword [r10 + 4]
add edx, ecx
mov dword [r10 + 0xc], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x14]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x28]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10]
xor edx, dword [rbx + 0xc]
mov dword [r9 + 0xc], edx
movzx eax, byte [r10 + 0x13]
mov ecx, dword [r10 + 0x10]
mov edx, dword [r10 + 0x14]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 8]
xor ecx, dword [r10 + 0x20]
add edx, ecx
mov dword [r10 + 0x10], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x18]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x2c]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 4]
xor edx, dword [rbx + 0x10]
mov dword [r9 + 0x10], edx
movzx eax, byte [r10 + 0x17]
mov ecx, dword [r10 + 0x14]
mov edx, dword [r10 + 0x18]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0xc]
xor ecx, dword [r10 + 0x24]
add edx, ecx
mov dword [r10 + 0x14], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x1c]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x30]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 8]
xor edx, dword [rbx + 0x14]
mov dword [r9 + 0x14], edx
movzx eax, byte [r10 + 0x1b]
mov ecx, dword [r10 + 0x18]
mov edx, dword [r10 + 0x1c]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x10]
xor ecx, dword [r10 + 0x28]
add edx, ecx
mov dword [r10 + 0x18], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x20]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x34]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0xc]
xor edx, dword [rbx + 0x18]
mov dword [r9 + 0x18], edx
movzx eax, byte [r10 + 0x1f]
mov ecx, dword [r10 + 0x1c]
mov edx, dword [r10 + 0x20]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x14]
xor ecx, dword [r10 + 0x2c]
mov dword [r10 + 0x1c], ecx
add edx, ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x24]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x38]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x10]
xor edx, dword [rbx + 0x1c]
mov dword [r9 + 0x1c], edx
movzx eax, byte [r10 + 0x23]
mov ecx, dword [r10 + 0x20]
mov edx, dword [r10 + 0x24]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x30]
xor ecx, dword [r10 + 0x18]
add edx, ecx
mov dword [r10 + 0x20], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x28]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x3c]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x14]
xor edx, dword [rbx + 0x20]
mov dword [r9 + 0x20], edx
movzx eax, byte [r10 + 0x27]
mov ecx, dword [r10 + 0x24]
mov edx, dword [r10 + 0x28]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x1c]
xor ecx, dword [r10 + 0x34]
add edx, ecx
mov dword [r10 + 0x24], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x2c]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x40]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x18]
xor edx, dword [rbx + 0x24]
mov dword [r9 + 0x24], edx
movzx eax, byte [r10 + 0x2b]
mov ecx, dword [r10 + 0x28]
mov edx, dword [r10 + 0x2c]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x38]
xor ecx, dword [r10 + 0x20]
add edx, ecx
mov dword [r10 + 0x28], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x30]
xor edx, dword [r10 + 0x88]
add edx, dword [r10]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x1c]
xor edx, dword [rbx + 0x28]
mov dword [r9 + 0x28], edx
movzx eax, byte [r10 + 0x2f]
mov ecx, dword [r10 + 0x2c]
mov edx, dword [r10 + 0x30]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x3c]
xor ecx, dword [r10 + 0x24]
add edx, ecx
mov dword [r10 + 0x2c], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x34]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 4]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x20]
xor edx, dword [rbx + 0x2c]
mov dword [r9 + 0x2c], edx
movzx eax, byte [r10 + 0x33]
mov ecx, dword [r10 + 0x30]
mov edx, dword [r10 + 0x34]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x40]
xor ecx, dword [r10 + 0x28]
add edx, ecx
mov dword [r10 + 0x30], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x38]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 8]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x24]
xor edx, dword [rbx + 0x30]
mov dword [r9 + 0x30], edx
movzx eax, byte [r10 + 0x37]
mov ecx, dword [r10 + 0x34]
mov edx, dword [r10 + 0x38]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10]
xor ecx, dword [r10 + 0x2c]
add edx, ecx
mov dword [r10 + 0x34], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x3c]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0xc]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x28]
xor edx, dword [rbx + 0x34]
mov dword [r9 + 0x34], edx
movzx eax, byte [r10 + 0x3b]
mov ecx, dword [r10 + 0x38]
mov edx, dword [r10 + 0x3c]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x30]
xor ecx, dword [r10 + 4]
add edx, ecx
mov dword [r10 + 0x38], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 0x40]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x10]
mov eax, edx
add r11d, 0xffffffbc
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x2c]
xor edx, dword [rbx + 0x38]
mov dword [r9 + 0x38], edx
movzx eax, byte [r10 + 0x3f]
mov ecx, dword [r10 + 0x3c]
mov edx, dword [r10 + 0x40]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 8]
xor ecx, dword [r10 + 0x34]
add edx, ecx
mov dword [r10 + 0x3c], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x14]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x30]
xor edx, dword [rbx + 0x3c]
mov dword [r9 + 0x3c], edx
movzx eax, byte [r10 + 0x43]
mov ecx, dword [r10 + 0x40]
mov edx, dword [r10]
shl ecx, 8
xor ecx, dword [r14 + rax*4 + 0x7a940]
xor ecx, dword [r10 + 0x38]
xor ecx, dword [r10 + 0xc]
add edx, ecx
mov dword [r10 + 0x40], ecx
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
ror edx, 8
add edx, dword [r10 + 4]
xor edx, dword [r10 + 0x88]
add edx, dword [r10 + 0x18]
mov eax, edx
shr rax, 0x18
xor edx, dword [r14 + rax*4 + 0x7ad40]
add edx, dword [r10 + 0x34]
xor edx, dword [rbx + 0x40]
add rbx, 0x44
mov dword [r9 + 0x40], edx
add r9, 0x44
sub rdi, 1
jne 0x14003e970
mov qword [rsp + 0x18], rsi
cmp r11d, 4
jb 0x14003f073
mov r8d, r11d
shr r8, 2
mov qword [rsp + 0x10], rbp
nop word [rax + rax]
movzx eax, byte [r10 + 3]
lea rsi, [r10 + 4]
mov edx, dword [r10]
mov rdi, r10
shl edx, 8
mov ecx, 0x10
add r11d, 0xfffffffc
xor edx, dword [r14 + rax*4 + 0x7a940]
xor edx, dword [r10 + 0x3c]
xor edx, dword [r10 + 0x10]
mov dword [r10], edx
rep movsd dword [rdi], dword [rsi]
mov dword [r10 + 0x40], edx
mov ecx, dword [r10]
add ecx, edx
mov eax, ecx
shr rax, 0x18
xor ecx, dword [r14 + rax*4 + 0x7ad40]
ror ecx, 8
add ecx, dword [r10 + 4]
xor ecx, dword [r10 + 0x88]
add ecx, dword [r10 + 0x18]
mov eax, ecx
shr rax, 0x18
xor ecx, dword [r14 + rax*4 + 0x7ad40]
add ecx, dword [r10 + 0x34]
xor ecx, dword [rbx]
add rbx, 4
mov dword [r9], ecx
add r9, 4
sub r8, 1
jne 0x14003eff0
mov rbp, qword [rsp + 0x10]
test r11d, r11d
je 0x14003f134
movzx eax, byte [r10 + 3]
lea rsi, [r10 + 4]
mov r8d, dword [r10]
mov rdi, r10
shl r8d, 8
mov ecx, 0x10
xor r8d, dword [r14 + rax*4 + 0x7a940]
xor r8d, dword [r10 + 0x3c]
xor r8d, dword [r10 + 0x10]
mov dword [r10], r8d
rep movsd dword [rdi], dword [rsi]
mov dword [r10 + 0x40], r8d
mov ecx, dword [r10]
add ecx, r8d
mov eax, ecx
shr rax, 0x18
xor ecx, dword [r14 + rax*4 + 0x7ad40]
ror ecx, 8
add ecx, dword [r10 + 4]
xor ecx, dword [r10 + 0x88]
add ecx, dword [r10 + 0x18]
mov eax, ecx
shr rax, 0x18
xor ecx, dword [r14 + rax*4 + 0x7ad40]
add ecx, dword [r10 + 0x34]
mov dword [r10 + 0x8c], ecx
sub rbx, r9
mov dword [r10 + 0x90], 0x20
nop word [rax + rax]
test r11d, r11d
je 0x14003f134
movzx ecx, byte [rbx + r9]
dec r11d
xor cl, byte [r10 + 0x8c]
mov byte [r9], cl
inc r9
shr dword [r10 + 0x8c], 8
add dword [r10 + 0x90], 0xfffffff8
cmp dword [r10 + 0x90], 0
jne 0x14003f100
mov rsi, qword [rsp + 0x18]
xor eax, eax
mov rdi, qword [rsp + 0x20]
mov r14, qword [rsp + 0x28]
pop rbx
ret
xor eax, eax
pop rbx
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov ebx, r8d
mov rdi, rdx
mov rsi, rcx
test r8d, r8d
jne 0x14003f19f
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov r8, rbx
xor edx, edx
mov rcx, rdi
call fcn.14004af40
mov r9, rdi
mov r8d, ebx
mov rdx, rdi
mov rcx, rsi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp 0x14003e8f0