Function at 0x140031078
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 [0x140047030]
xor rax, rsp
mov qword [rbp + 0x3f], rax
call fcn.14002e1dc
xor ebx, ebx
mov esi, 0x3e8
jmp 0x1400310c0
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_Sleep]
call fcn.14002e1dc
test eax, eax
je 0x1400310b3
call fcn.14002e1dc
mov dword [0x140048900], eax
test eax, eax
jne 0x1400310dc
lea rdx, str.Failed_to_initialize.__Code:_0x3_
jmp 0x14003115a
lea rdi, str.UnrealWindow
jmp 0x1400310ed
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 0x1400310e5
xor edx, edx
mov rcx, rdi
call qword [sym.imp.USER32.dll_FindWindowA]
mov qword [0x1400488f8], rax
test rax, rax
jne 0x14003111d
lea rdx, str.Failed_to_initialize.__Code:_0x4_
jmp 0x14003115a
mov edx, dword [0x140048900]
mov rcx, qword [0x140048908]
call fcn.140001804
test al, al
jne 0x14003113c
lea rdx, str.Failed_to_initialize.__Code:_0x5_
jmp 0x14003115a
mov rax, qword [0x140048908]
mov rcx, qword [rax + 0x30]
mov qword [0x1400488f0], rcx
test rcx, rcx
jne 0x140031168
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 [0x140042358]
mov r14d, 1
movups xmm0, xmmword [0x140042348]
mov dword [rbp - 0x11], eax
movzx eax, word [0x14004235c]
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 0x140031204
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x140031204
mov esi, dword [r10 + 0x20]
dec r9d
mov r11d, 0x7cdb738b
lea rcx, [rsi + r9*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov cl, byte [rdx]
add rdx, r14
test cl, cl
je 0x1400311ff
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, r14
test cl, cl
jne 0x1400311e0
cmp r11d, 0x8f6c8feb
je 0x140031209
test r9d, r9d
jne 0x1400311c3
mov rax, qword [rax]
jmp 0x14003119e
mov ecx, dword [r10 + 0x24]
mov r15d, 0x29e4129f
add rcx, r8
movzx edx, word [rcx + r9*2]
mov ecx, dword [r10 + 0x1c]
lea r10, [rbp - 0x21]
add rcx, r8
mov r9d, dword [rcx + rdx*4]
add r9, r8
mov r8d, ebx
mov eax, r15d
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x37
mov al, r8b
add r8d, r14d
sub al, cl
add al, 0x33
xor byte [r10], al
add r10, r14
cmp r8d, 0x16
jl 0x140031230
lea rcx, [rbp - 0x21]
call r9
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 0x1400312d7
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 0x1400312d7
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 0x140031398
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 0x14003133e
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 0x14003133e
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 0x140031398
movups xmm0, xmmword [rdi]
movups xmmword [0x140048428], xmm0
movsd xmm1, qword [rdi + 0x10]
movsd qword [0x140048438], xmm1
mov eax, dword [rdi + 0x18]
mov dword [0x140048440], eax
movzx eax, word [rdi + 0x1c]
mov word [0x140048444], ax
movups xmm0, xmmword [r8]
movups xmmword [0x140048448], xmm0
movsd xmm1, qword [r8 + 0x10]
movsd qword [0x140048458], xmm1
mov eax, dword [r8 + 0x18]
mov dword [0x140048460], eax
movzx eax, word [r8 + 0x1c]
mov word [0x140048464], ax
mov qword [rsp + 0x28], rbx
lea r8, [0x14002f598]
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.PXF6r_XTXL]
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 0x140031435
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x140031435
mov esi, dword [r9 + 0x20]
dec r10d
mov r11d, 0xf894ca7
lea rcx, [rsi + r10*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov cl, byte [rdx]
add rdx, r14
test cl, cl
je 0x140031430
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, r14
test cl, cl
jne 0x140031411
cmp r11d, 0x7b50d326
je 0x14003143a
test r10d, r10d
jne 0x1400313f4
mov rax, qword [rax]
jmp 0x1400313cf
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
lea r10, [rbp - 0x29]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov r9d, dword [rcx + rdx*4]
add r9, r8
mov r8d, ebx
mov eax, r15d
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x37
mov al, r8b
add r8d, r14d
sub al, cl
add al, 0x33
xor byte [r10], al
add r10, r14
cmp r8d, 4
jl 0x14003145b
lea rcx, [rbp - 0x29]
call r9
mov eax, dword [0x140042218]
lea r9, [rbp - 0x21]
movups xmm0, xmmword [0x140042208]
mov dword [rbp - 0x11], eax
mov r8d, ebx
mov al, byte [0x14004221c]
movups xmmword [rbp - 0x21], xmm0
mov byte [rbp - 0xd], al
mov eax, r15d
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x37
mov al, r8b
add r8d, r14d
sub al, cl
add al, 0x33
xor byte [r9], al
add r9, r14
cmp r8d, 0x15
jl 0x1400314b4
lea rcx, [rbp - 0x21]
call fcn.14002e8b0
movups xmm0, xmmword [str.dUBV]
mov al, byte [0x140042268]
mov r8d, ebx
movups xmm1, xmmword [0x140042248]
mov byte [rbp + 0x27], al
lea r9, [rbp - 9]
movups xmmword [rbp - 9], xmm0
movups xmm0, xmmword [0x140042258]
movups xmmword [rbp + 7], xmm1
movups xmmword [rbp + 0x17], xmm0
mov eax, r15d
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x37
mov al, r8b
add r8d, r14d
sub al, cl
add al, 0x33
xor byte [r9], al
add r9, r14
cmp r8d, 0x31
jl 0x14003151c
lea rcx, [rbp - 9]
call fcn.14002e8b0
cmp qword [0x140047fe8], rbx
jne 0x1400315a4
xor eax, eax
mov dword [rbp + 0x2f], 0x5859456f
mov byte [rbp + 0x39], al
mov edx, ebx
mov dword [rbp + 0x33], 0x555b4743
mov word [rbp + 0x37], 0x1211
movsxd rcx, edx
lea eax, [rdx + 0x29]
add edx, r14d
xor byte [rbp + rcx + 0x2f], al
cmp edx, 0xa
jb 0x140031577
lea rdx, [rbp + 0x2f]
mov byte [rbp + 0x39], bl
xor ecx, ecx
call qword [sym.imp.USER32.dll_FindWindowA]
mov qword [0x140047fe8], rax
test rax, rax
je 0x14003155c
cmp dword [0x140048900], ebx
jne 0x140031649
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 0x140031627
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x140031627
mov esi, dword [r9 + 0x20]
dec r10d
mov r11d, 0x95de66a3
lea rcx, [rsi + r10*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov cl, byte [rdx]
add rdx, r14
test cl, cl
je 0x140031622
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, r14
test cl, cl
jne 0x140031603
cmp r11d, 0xdfb92ed3
je 0x14003162c
test r10d, r10d
jne 0x1400315e6
mov rax, qword [rax]
jmp 0x1400315c1
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*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 [0x1400488f0]
test rdx, rdx
jne 0x140031713
cmp byte [0x140042227], bl
mov rax, qword [str.hqgdxjd:__ASGY_]
mov qword [rbp - 0x29], rax
je 0x1400316a1
mov r8d, ebx
lea r9, [rbp - 0x29]
mov eax, r15d
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x37
mov al, r8b
add r8d, r14d
sub al, cl
add al, 0x33
xor byte [r9], al
add r9, r14
cmp r8d, 8
jl 0x140031673
cmp byte [0x1400421ed], bl
mov eax, dword [0x1400421e8]
movups xmm0, xmmword [str.wF_RJ]
mov dword [rbp - 0x11], eax
movzx eax, word [0x1400421ec]
movups xmmword [rbp - 0x21], xmm0
mov word [rbp - 0xd], ax
je 0x1400316f6
lea r8, [rbp - 0x21]
mov eax, r15d
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul ecx, eax, 0x37
mov al, bl
add ebx, r14d
sub al, cl
add al, 0x33
xor byte [r8], al
add r8, r14
cmp ebx, 0x16
jl 0x1400316cc
mov r9d, 0x30
lea r8, [rbp - 0x29]
lea rdx, [rbp - 0x21]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
mov rdx, qword [0x1400488f0]
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.1400323c4
call fcn.140032780
call fcn.140032090
call fcn.140035638
call fcn.140035bc0
xor eax, eax
mov rcx, qword [rbp + 0x3f]
xor rcx, rsp
call fcn.1400368b0
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