Function at 0x1800029f0
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
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 - 0x38]
sub rsp, 0x120
movaps xmmword [rax - 0x28], xmm6
mov r15, r8
movaps xmmword [rax - 0x38], xmm7
mov rsi, rdx
movaps xmmword [rax - 0x48], xmm8
mov r14, rcx
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r10, qword [rax + 0x30]
movsxd r8, dword [r10 + 0x3c]
mov edi, dword [r8 + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180002ab7
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002ab7
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x7779c9ab
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180002ab2
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x180002a90
cmp r8d, 0x259aba19
je 0x180002abc
test r9d, r9d
jne 0x180002a70
mov rax, qword [rax]
jmp 0x180002a40
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]
mov rcx, r14
add rax, r10
call rax
movaps xmm0, xmmword [rsi]
mov rcx, r14
movsd xmm6, qword [rsi]
movsd xmm7, qword [rsi + 8]
movups xmm8, xmmword [0x180013b58]
addsd xmm6, qword [0x180013c18]
addsd xmm7, qword [0x180013c18]
movups xmm9, xmmword [0x18001a2c8]
movaps xmm10, xmmword [r15]
movaps xmmword [rsp + 0x30], xmm0
call fcn.180002370
xor ecx, ecx
mov qword [rsp + 0x20], rcx
cmp word [rax], cx
je 0x180002b4e
mov rcx, 0xffffffffffffffff
nop dword [rax + rax]
inc rcx
cmp word [rax + rcx*2], 0
jne 0x180002b30
add ecx, 1
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x2c], ecx
je 0x180002b53
mov qword [rsp + 0x20], rax
jmp 0x180002b53
mov qword [rsp + 0x28], rcx
movups xmm0, xmmword [rsp + 0x20]
mov rax, qword [0x1800167a8]
movaps xmm1, xmmword [rsp + 0x30]
mov rbx, qword [0x180016828]
mov qword [rsp + 0x40], rax
mov rax, qword [0x18001a778]
movsd qword [rbp - 0x60], xmm6
movsd qword [rbp - 0x58], xmm7
mov word [rbp - 0x50], 0x100
mov byte [rbp - 0x4e], 1
movups xmmword [rsp + 0x48], xmm0
xorps xmm0, xmm0
movss dword [rbp - 0x78], xmm0
movups xmmword [rsp + 0x58], xmm1
movaps xmm1, xmmword [0x180013e50]
movups xmmword [rsp + 0x68], xmm1
movups xmmword [rsp + 0x78], xmm10
movups xmmword [rbp - 0x74], xmm9
movups xmmword [rbp - 0x4c], xmm8
test rax, rax
jne 0x180002be2
mov rax, qword [0x180016948]
lea r8, str.Canvas.K2_DrawText
add rax, 0x13efec8
xor r9d, r9d
xor edx, edx
xor ecx, ecx
call rax
mov qword [0x18001a778], rax
mov r9, qword [rbx]
lea r8, [rsp + 0x40]
mov rdx, rax
mov rcx, rbx
call qword [r9 + 0x260]
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop rbp
ret