Function at 0x1400ca288
Capabilities:
Access peb ldr_data
Create thread
Encode data using xor
Enumerate gui resources
Hash data using fnv
Resolve function by parsing pe exports
Resume thread

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x20], rsi
push rbp
push rdi
push r12
push r13
push r15
mov rbp, rsp
sub rsp, 0x70
and qword [rax - 0x70], 0
lea r8, [0x1400ce438]
and dword [rax - 0x78], 0
xor r9d, r9d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov r15d, 1
or r12d, 0xffffffff
mov rsi, rax
mov r13d, 0x811c9dc5
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ResumeThread]
cmp eax, r15d
jb 0x1400ca56a
cmp byte [0x1401f1615], 0
mov eax, dword [0x1401f1610]
vmovsd xmm0, qword [0x1401f1608]
mov dword [rbp - 0x38], eax
movzx eax, word [0x1401f1614]
mov word [rbp - 0x34], ax
vmovsd qword [rbp - 0x40], xmm0
je 0x1400ca345
xor r8d, r8d
lea r9, [rbp - 0x40]
mov eax, 0x29e4129f
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, r15d
sub al, cl
add al, 0x34
xor byte [r9], al
add r9, r15
cmp r8d, 0xe
jl 0x1400ca315
and qword [rbp - 0x10], 0
lea rax, [rbp - 0x40]
and qword [rbp - 8], 0
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x20], xmm0
or r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x1400ca360
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x20]
call fcn.140083fc0
lea rdx, [rbp - 0x20]
lea rcx, [0x1403472f0]
call fcn.1400ff390
call fcn.140060fa0
lea rcx, [0x1403472f0]
call 0x140000000
call fcn.140060fa0
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 0x1400ca411
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x1400ca411
mov edi, dword [r10 + 0x20]
add r9d, r12d
mov r11d, r13d
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov cl, byte [rdx]
add rdx, r15
test cl, cl
je 0x1400ca40c
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, r15
test cl, cl
jne 0x1400ca3ed
cmp r11d, 0xcded1a85
je 0x1400ca416
test r9d, r9d
jne 0x1400ca3d3
mov rax, qword [rax]
jmp 0x1400ca3ae
mov ecx, dword [r10 + 0x24]
add rcx, r8
movzx edx, word [rcx + r9*2]
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r8
call rax
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 0x1400ca4a7
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x1400ca4a7
mov edi, dword [r10 + 0x20]
add r9d, r12d
mov r11d, r13d
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov cl, byte [rdx]
add rdx, r15
test cl, cl
je 0x1400ca4a2
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, r15
test cl, cl
jne 0x1400ca483
cmp r11d, 0xe80fd3a
je 0x1400ca4ac
test r9d, r9d
jne 0x1400ca469
mov rax, qword [rax]
jmp 0x1400ca444
mov ecx, dword [r10 + 0x24]
add rcx, r8
movzx edx, word [rcx + r9*2]
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r8
call rax
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 0x1400ca53c
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x1400ca53c
mov edi, dword [r10 + 0x20]
add r9d, r12d
mov r11d, r13d
lea rcx, [r8 + r9*4]
mov edx, dword [rcx + rdi]
add rdx, r8
mov cl, byte [rdx]
add rdx, r15
test cl, cl
je 0x1400ca537
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, r15
test cl, cl
jne 0x1400ca518
cmp r11d, 0xa52bcaf9
je 0x1400ca541
test r9d, r9d
jne 0x1400ca4ff
mov rax, qword [rax]
jmp 0x1400ca4da
mov ecx, dword [r10 + 0x24]
add rcx, r8
movzx edx, word [rcx + r9*2]
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
call rax
mov eax, 0xdead
movabs dword [0], eax
mov eax, dword [0x1401f1618]
lea r9, [rbp + 0x38]
mov dword [rbp + 0x38], eax
xor r8d, r8d
movzx eax, word [0x1401f161c]
mov word [rbp + 0x3c], ax
mov eax, 0x29e4129f
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, r15d
sub al, cl
add al, 0x34
xor byte [r9], al
add r9, r15
cmp r8d, 6
jl 0x1400ca585
xor edx, edx
lea rcx, [rbp + 0x38]
call fcn.1400d133c
test al, al
je 0x1400ca858
cmp byte [0x1401f162d], 0
mov eax, dword [0x1401f1628]
vmovsd xmm0, qword [0x1401f1620]
mov dword [rbp - 0x2a], eax
movzx eax, word [0x1401f162c]
mov word [rbp - 0x26], ax
vmovsd qword [rbp - 0x32], xmm0
je 0x1400ca629
xor r8d, r8d
lea r9, [rbp - 0x32]
mov eax, 0x29e4129f
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, r15d
sub al, cl
add al, 0x34
xor byte [r9], al
add r9, r15
cmp r8d, 0xe
jl 0x1400ca5f9
and qword [rbp - 0x10], 0
lea rax, [rbp - 0x32]
and qword [rbp - 8], 0
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x20], xmm0
or r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x1400ca644
lea rdx, [rbp - 0x32]
lea rcx, [rbp - 0x20]
call fcn.140083fc0
lea rdx, [rbp - 0x20]
lea rcx, [0x1403472f0]
call fcn.1400ff390
call fcn.140060fa0
mov byte [0x1403460f2], r15b
call fcn.140060fa0
lea rcx, [0x1403472f0]
call 0x140000000
call fcn.140060fa0
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 0x1400ca700
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x1400ca700
mov edi, dword [r10 + 0x20]
add r9d, r12d
mov r11d, r13d
lea rcx, [r8 + r9*4]
mov edx, dword [rcx + rdi]
add rdx, r8
mov cl, byte [rdx]
add rdx, r15
test cl, cl
je 0x1400ca6fb
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, r15
test cl, cl
jne 0x1400ca6dc
cmp r11d, 0xcded1a85
je 0x1400ca705
test r9d, r9d
jne 0x1400ca6c3
mov rax, qword [rax]
jmp 0x1400ca69e
mov ecx, dword [r10 + 0x24]
add rcx, r8
movzx edx, word [rcx + r9*2]
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r8
call rax
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 0x1400ca795
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x1400ca795
mov edi, dword [r10 + 0x20]
add r9d, r12d
mov r11d, r13d
lea rcx, [r8 + r9*4]
mov edx, dword [rcx + rdi]
add rdx, r8
mov cl, byte [rdx]
add rdx, r15
test cl, cl
je 0x1400ca790
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, r15
test cl, cl
jne 0x1400ca771
cmp r11d, 0xe80fd3a
je 0x1400ca79a
test r9d, r9d
jne 0x1400ca758
mov rax, qword [rax]
jmp 0x1400ca733
mov ecx, dword [r10 + 0x24]
add rcx, r8
movzx edx, word [rcx + r9*2]
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r8
call rax
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 0x1400ca82a
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x1400ca82a
mov edi, dword [r9 + 0x20]
add r10d, r12d
mov r11d, r13d
lea rcx, [r8 + r10*4]
mov edx, dword [rcx + rdi]
add rdx, r8
mov cl, byte [rdx]
add rdx, r15
test cl, cl
je 0x1400ca825
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, r15
test cl, cl
jne 0x1400ca806
cmp r11d, 0xa52bcaf9
je 0x1400ca82f
test r10d, r10d
jne 0x1400ca7ed
mov rax, qword [rax]
jmp 0x1400ca7c8
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]
add rax, r8
call rax
mov eax, 0xdead
movabs dword [0], eax
call fcn.1400d86cc
xor edx, edx
lea rcx, [0x1400ce448]
call qword [sym.imp.USER32.dll_EnumWindows]
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1400ca2d2