Function at 0x140097400
Capabilities:
Access peb ldr_data
Encode data using xor
Generate random numbers using a mersenne twister
Get process filename
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1430
call fcn.1400cd6e0
sub rsp, rax
movaps xmmword [rsp + 0x1420], xmm6
movaps xmmword [rsp + 0x1410], xmm7
mov rax, qword [0x1401550c0]
xor rax, rsp
mov qword [rsp + 0x1400], rax
mov edx, 0x7f00
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov edx, 0x7f89
xor ecx, ecx
mov qword [0x1402d2e30], rax
call qword [sym.imp.USER32.dll_LoadCursorW]
mov qword [0x1402d2e28], rax
xor r13d, r13d
mov rax, qword gs:[0x60]
mov dword [0x1402b6048], r13d
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x140097507
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x140097507
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0xb4703f4e
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x140097502
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x1400974e0
cmp r8d, 0x6babbb54
je 0x14009750c
test r9d, r9d
jne 0x1400974c0
mov rax, qword [rax]
jmp 0x140097490
mov ecx, dword [rdi + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r10
call rax
movd xmm7, eax
mov rax, qword gs:[0x60]
cvtdq2ps xmm7, xmm7
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x1400975b7
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1400975b7
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0xb56374ee
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1400975b2
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x140097590
cmp r8d, 0xea90cdb4
je 0x1400975bc
test r9d, r9d
jne 0x140097570
mov rax, qword [rax]
jmp 0x140097540
mov ecx, dword [rdi + 0x24]
mov ebx, 1
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov ecx, ebx
add rax, r10
call rax
movaps xmm0, xmm7
addss xmm0, xmm7
movd xmm6, eax
cvtdq2ps xmm6, xmm6
divss xmm0, dword [0x14013ef18]
movaps xmm1, xmm6
addss xmm1, xmm6
movss dword [0x1402b604c], xmm0
divss xmm1, dword [0x14013eef4]
movss dword [0x1402b6050], xmm1
call fcn.1400ac080
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x13f4], 0xffffffff
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, ebx
mov dword [rsp + rbx*4 + 0x74], eax
inc rbx
cmp rbx, 0x270
jb 0x140097630
mov rax, qword gs:[0x58]
mov edx, 4
mov dword [rsp + 0x70], 0x270
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x1402d2ea0], eax
jle 0x1400976a0
lea rcx, [0x1402d2ea0]
call fcn.1400cce38
cmp dword [0x1402d2ea0], 0xffffffff
jne 0x1400976a0
lea rcx, [0x140104200]
call fcn.1400ccd70
lea rcx, [0x1402d2ea0]
call fcn.1400ccdcc
mov rcx, qword [0x1402d2170]
cmp rcx, qword [0x1402d2178]
je 0x1400976b7
mov qword [0x1402d2178], rcx
mov rax, qword [0x1402d2180]
sub rax, rcx
mov qword [rsp + 0x68], 0x10
sar rax, 1
cmp rax, 0x10
jae 0x1400976dd
lea rdx, [rsp + 0x68]
call fcn.1400984f0
mov ebx, 0xf
lea rdi, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
nop dword [rax]
lea rax, [rsp + 0x70]
mov edx, 0x3e
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x68], rax
call fcn.140098750
mov rdx, qword [0x1402d2178]
cmp rdx, qword [0x1402d2180]
lea r8, [rdi + rax*2]
je 0x140097738
movzx eax, word [r8]
mov word [rdx], ax
mov rdx, qword [0x1402d2178]
add rdx, 2
mov qword [0x1402d2178], rdx
jmp 0x140097744
call fcn.1400985f0
mov rdx, qword [0x1402d2178]
sub rbx, 1
jne 0x1400976f0
cmp rdx, qword [0x1402d2180]
mov word [rsp + 0x60], r13w
je 0x140097767
mov word [rdx], r13w
add qword [0x1402d2178], 2
jmp 0x140097771
lea r8, [rsp + 0x60]
call fcn.1400985f0
subss xmm7, dword [0x1402b604c]
subss xmm6, dword [0x1402b6050]
mov rsi, qword [0x1402d2170]
xor ecx, ecx
mulss xmm7, dword [0x14013ee5c]
mulss xmm6, dword [0x14013ee5c]
cvttss2si ebp, xmm7
cvttss2si r14d, xmm6
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rcx, [0x140098320]
mov dword [0x1402d2e50], 0x50
mov qword [0x1402d2e68], rax
xorps xmm0, xmm0
mov rax, qword [0x1402d2e30]
mov qword [0x1402d2e58], rcx
lea rcx, [0x1402d2e50]
mov qword [0x1402d2e78], rax
mov dword [0x1402d2e54], 0x40
mov qword [0x1402d2e60], r13
mov qword [0x1402d2e70], r13
movdqa xmmword [0x1402d2e80], xmm0
mov qword [0x1402d2e90], rsi
mov qword [0x1402d2e98], r13
call qword [sym.imp.USER32.dll_RegisterClassExW]
mov rax, qword gs:[0x60]
cvttss2si r15d, dword [0x1402b6050]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
cvttss2si r12d, dword [0x1402b604c]
nop word [rax + rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x1400978b7
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1400978b7
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x533e96f5
lea rcx, [r11 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r11
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1400978b2
nop dword [rax]
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x140097890
cmp r8d, 0x6b0b0bdd
je 0x1400978bc
test r9d, r9d
jne 0x140097870
mov rax, qword [rax]
jmp 0x140097840
mov ecx, dword [rdi + 0x24]
mov r8, rsi
mov rax, qword [0x1402d2e68]
add rcx, r11
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], r13
movzx edx, word [rcx + r9*2]
mov r9d, 0x800a0000
mov ecx, dword [rdi + 0x1c]
mov qword [rsp + 0x40], r13
add rcx, r11
mov dword [rsp + 0x38], r15d
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], r14d
mov r10d, dword [rcx + rdx*4]
xor ecx, ecx
mov rdx, qword [0x1402d2e90]
add r10, r11
mov dword [rsp + 0x20], ebp
call r10
mov qword [0x1402d2138], rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x1400979a7
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x1400979a7
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x4a3c4a33
lea rcx, [r10 + r9*4]
mov edx, dword [rcx + rdi]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1400979a2
nop dword [rax]
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x140097980
cmp r8d, 0x20fd7a1a
je 0x1400979ac
test r9d, r9d
jne 0x140097960
mov rax, qword [rax]
jmp 0x140097930
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov edx, 0xa
mov rcx, qword [0x1402d2138]
add rax, r10
call rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x140097a67
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x140097a67
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0xe1396651
lea rcx, [r10 + r9*4]
mov edx, dword [rcx + rdi]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x140097a62
nop dword [rax]
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x140097a40
cmp r8d, 0x833c5f0c
je 0x140097a6c
test r9d, r9d
jne 0x140097a20
mov rax, qword [rax]
jmp 0x1400979f0
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov rcx, qword [0x1402d2138]
add rax, r10
call rax
mov al, 1
mov rcx, qword [rsp + 0x1400]
xor rcx, rsp
call fcn.1400cc9e0
lea r11, [rsp + 0x1430]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret