Function at 0x1400317e4
Capabilities:
Access peb ldr_data
Create thread
Encode data using xor
Hash data using fnv
Link many functions at runtime
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
mov rax, qword [0x140047040]
xor rax, rsp
mov qword [rbp + 0x3f], rax
call fcn.14002e970
xor ebx, ebx
mov esi, 0x3e8
jmp 0x14003182c
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_Sleep]
call fcn.14002e970
test eax, eax
je 0x14003181f
call fcn.14002e970
mov dword [0x140048910], eax
test eax, eax
jne 0x140031848
lea rdx, str.Failed_to_initialize.__Code:_0x3_
jmp 0x1400318c6
lea rdi, str.UnrealWindow
jmp 0x140031859
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_Sleep]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.USER32.dll_FindWindowA]
test rax, rax
je 0x140031851
xor edx, edx
mov rcx, rdi
call qword [sym.imp.USER32.dll_FindWindowA]
mov qword [0x140048908], rax
test rax, rax
jne 0x140031889
lea rdx, str.Failed_to_initialize.__Code:_0x4_
jmp 0x1400318c6
mov edx, dword [0x140048910]
mov rcx, qword [0x140048918]
call fcn.1400017e4
test al, al
jne 0x1400318a8
lea rdx, str.Failed_to_initialize.__Code:_0x5_
jmp 0x1400318c6
mov rax, qword [0x140048918]
mov rcx, qword [rax + 0x30]
mov qword [0x140048900], rcx
test rcx, rcx
jne 0x1400318d4
lea rdx, str.Failed_to_initialize.__Code:_0x6_
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [0x1400421e0]
mov r14d, 1
movups xmm0, xmmword [0x1400421d0]
mov dword [rbp - 0x11], eax
movzx eax, word [0x1400421e4]
movups xmmword [rbp - 0x21], xmm0
mov word [rbp - 0xd], ax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r10d, dword [rcx + r8 + 0x88]
add r10, r8
cmp r10, r8
je 0x140031970
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x140031970
mov edi, dword [r10 + 0x20]
dec r9d
mov r11d, 0x9d822d7f
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov cl, byte [rdx]
add rdx, r14
test cl, cl
je 0x14003196b
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, r14
test cl, cl
jne 0x14003194c
cmp r11d, 0xa60af9e7
je 0x140031975
test r9d, r9d
jne 0x14003192f
mov rax, qword [rax]
jmp 0x14003190a
mov ecx, dword [r10 + 0x24]
mov r15d, 0x5397829d
add rcx, r8
movzx edx, word [rcx + r9*2]
lea r9, [rbp - 0x21]
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov r10d, dword [rcx + rdx*4]
add r10, r8
mov r8d, ebx
mov eax, r15d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x31
mov al, r8b
add r8d, r14d
sub al, cl
add al, 0x32
xor byte [r9], al
add r9, r14
cmp r8d, 0x16
jl 0x14003199c
lea rcx, [rbp - 0x21]
call r10
lea rcx, str.win32u
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.NtUserSendInput
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rsi, str.user32
mov rdi, rax
test rax, rax
jne 0x140031a3a
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.NtUserSendInput
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
test rax, rax
jne 0x140031a3a
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.SendInput
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
test rax, rax
je 0x140031afb
lea rcx, str.win32u
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.NtUserGetAsyncKeyState
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r8, rax
test rax, rax
jne 0x140031aa1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.NtUserGetAsyncKeyState
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r8, rax
test rax, rax
jne 0x140031aa1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.GetAsyncKeyState
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r8, rax
test rax, rax
je 0x140031afb
movups xmm0, xmmword [rdi]
movups xmmword [0x140048438], xmm0
movsd xmm1, qword [rdi + 0x10]
movsd qword [0x140048448], xmm1
mov eax, dword [rdi + 0x18]
mov dword [0x140048450], eax
movzx eax, word [rdi + 0x1c]
mov word [0x140048454], ax
movups xmm0, xmmword [r8]
movups xmmword [0x140048458], xmm0
movsd xmm1, qword [r8 + 0x10]
movsd qword [0x140048468], xmm1
mov eax, dword [r8 + 0x18]
mov dword [0x140048470], eax
movzx eax, word [r8 + 0x1c]
mov word [0x140048474], ax
mov qword [rsp + 0x28], rbx
lea r8, [0x14002fcfc]
xor r9d, r9d
mov dword [rsp + 0x20], ebx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, dword [str.Q_G5]
mov dword [rbp - 0x29], eax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r9d, dword [rcx + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x140031b97
mov edx, dword [r9 + 0x18]
test edx, edx
je 0x140031b97
mov esi, dword [r9 + 0x20]
dec edx
mov r11d, 0xaff4a5f3
lea rcx, [rsi + rdx*4]
mov r10d, dword [rcx + r8]
add r10, r8
mov cl, byte [r10]
add r10, r14
test cl, cl
je 0x140031b93
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [r10]
add r10, r14
test cl, cl
jne 0x140031b73
cmp r11d, 0x22eda07a
je 0x140031b9c
test edx, edx
jne 0x140031b56
mov rax, qword [rax]
jmp 0x140031b32
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + rdx*2]
mov ecx, dword [r9 + 0x1c]
lea r9, [rbp - 0x29]
add rcx, r8
mov r10d, dword [rcx + rdx*4]
add r10, r8
mov r8d, ebx
mov eax, r15d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x31
mov al, r8b
add r8d, r14d
sub al, cl
add al, 0x32
xor byte [r9], al
add r9, r14
cmp r8d, 4
jl 0x140031bbc
lea rcx, [rbp - 0x29]
call r10
mov eax, dword [0x140042150]
lea r9, [rbp - 0x21]
movups xmm0, xmmword [0x140042140]
mov dword [rbp - 0x11], eax
mov r8d, ebx
mov al, byte [0x140042154]
movups xmmword [rbp - 0x21], xmm0
mov byte [rbp - 0xd], al
mov eax, r15d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x31
mov al, r8b
add r8d, r14d
sub al, cl
add al, 0x32
xor byte [r9], al
add r9, r14
cmp r8d, 0x15
jl 0x140031c0c
lea rcx, [rbp - 0x21]
call fcn.14002f044
movups xmm0, xmmword [str.eR_A_Y_]
mov al, byte [0x1400422a8]
mov r8d, ebx
movups xmm1, xmmword [0x140042288]
mov byte [rbp + 0x27], al
lea r9, [rbp - 9]
movups xmmword [rbp - 9], xmm0
movups xmm0, xmmword [0x140042298]
movups xmmword [rbp + 7], xmm1
movups xmmword [rbp + 0x17], xmm0
mov eax, r15d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x31
mov al, r8b
add r8d, r14d
sub al, cl
add al, 0x32
xor byte [r9], al
add r9, r14
cmp r8d, 0x31
jl 0x140031c6b
lea rcx, [rbp - 9]
call fcn.14002f044
cmp qword [0x140048000], rbx
jne 0x140031cea
xor eax, eax
mov dword [rbp + 0x2f], 0x9a9f83ad
mov byte [rbp + 0x39], al
mov edx, ebx
mov dword [rbp + 0x33], 0x97859981
mov word [rbp + 0x37], 0xd4d3
movsxd rcx, edx
lea eax, [rdx - 0x15]
add edx, r14d
xor byte [rbp + rcx + 0x2f], al
cmp edx, 0xa
jb 0x140031cbd
lea rdx, [rbp + 0x2f]
mov byte [rbp + 0x39], bl
xor ecx, ecx
call qword [sym.imp.USER32.dll_FindWindowA]
mov qword [0x140048000], rax
test rax, rax
je 0x140031ca2
cmp dword [0x140048910], ebx
jne 0x140031d8d
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r9d, dword [rcx + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x140031d6c
mov edx, dword [r9 + 0x18]
test edx, edx
je 0x140031d6c
mov esi, dword [r9 + 0x20]
dec edx
mov r11d, 0xce98ce17
lea rcx, [r8 + rdx*4]
mov r10d, dword [rcx + rsi]
add r10, r8
mov cl, byte [r10]
add r10, r14
test cl, cl
je 0x140031d68
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [r10]
add r10, r14
test cl, cl
jne 0x140031d48
cmp r11d, 0xebaf3657
je 0x140031d71
test edx, edx
jne 0x140031d2b
mov rax, qword [rax]
jmp 0x140031d07
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + rdx*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r8
call rax
mov rdx, qword [0x140048900]
test rdx, rdx
jne 0x140031e46
cmp byte [0x140042117], bl
mov rax, qword [str.ivfgyee9]
mov qword [rbp - 0x29], rax
je 0x140031ddc
mov r8d, ebx
lea r9, [rbp - 0x29]
mov eax, r15d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x31
mov al, r8b
add r8d, r14d
sub al, cl
add al, 0x32
xor byte [r9], al
add r9, r14
cmp r8d, 8
jl 0x140031db7
cmp byte [0x1400421cd], bl
mov eax, dword [0x1400421c8]
movups xmm0, xmmword [str.vA_CSE]
mov dword [rbp - 0x11], eax
movzx eax, word [0x1400421cc]
movups xmmword [rbp - 0x21], xmm0
mov word [rbp - 0xd], ax
je 0x140031e29
lea r8, [rbp - 0x21]
mov eax, r15d
mul ebx
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x31
mov al, bl
add ebx, r14d
sub al, cl
add al, 0x32
xor byte [r8], al
add r8, r14
cmp ebx, 0x16
jl 0x140031e07
mov r9d, 0x30
lea r8, [rbp - 0x29]
lea rdx, [rbp - 0x21]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
mov rdx, qword [0x140048900]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_long_unsigned___int64_____ptr64]
call fcn.140032adc
call fcn.140032e78
call fcn.1400327a0
call fcn.140035fa4
call fcn.140036524
xor eax, eax
mov rcx, qword [rbp + 0x3f]
xor rcx, rsp
call fcn.140037200
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret