Function at 0x1400518d0
Capabilities:
Encode data using xor
Hash data using fnv
Parse pe header

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2e0]
sub rsp, 0x3e0
mov rax, qword [0x140123218]
xor rax, rsp
mov qword [rbp + 0x2d0], rax
mov rsi, r8
mov qword [rsp + 0x28], r8
mov r13, rdx
mov r12, rcx
mov qword [rsp + 0x60], rcx
mov eax, 1
mov dword [rsp + 0x20], eax
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
xor ebx, ebx
mov qword [rcx], rbx
mov qword [rcx + 8], rbx
mov qword [rcx + 0x10], rbx
mov dword [rsp + 0x20], eax
mov rdx, r8
mov rcx, r13
call fcn.140051290
mov rdi, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x140051e50
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
lea r9d, [rbx + 0x40]
lea r8, [rsp + 0x70]
mov rdx, rax
mov rcx, r13
call fcn.14005a150
test eax, eax
js 0x140051e50
mov eax, 0x5a4d
cmp word [rsp + 0x70], ax
jne 0x140051e50
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp + 0x80]
call fcn.1400cdb70
movsxd rdx, dword [rbp - 0x54]
add rdx, rdi
mov r9d, 0x108
lea r8, [rbp + 0x80]
mov rcx, r13
call fcn.14005a150
test eax, eax
js 0x140051e50
cmp dword [rbp + 0x80], 0x4550
jne 0x140051e50
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x50], rax
mov r15d, dword [rbp + 0x108]
add r15, rdi
mov qword [rsp + 0x50], r15
mov eax, dword [rbp + 0x10c]
add rax, r15
mov qword [rsp + 0x40], rax
lea r9d, [rbx + 0x28]
lea r8, [rbp + 0x30]
mov rdx, r15
mov rcx, r13
call fcn.14005a150
test eax, eax
js 0x140051e50
mov eax, dword [rbp + 0x4c]
add rax, rdi
mov qword [rsp + 0x38], rax
mov eax, dword [rbp + 0x54]
add rax, rdi
mov qword [rsp + 0x30], rax
mov eax, dword [rbp + 0x50]
add rax, rdi
mov qword [rsp + 0x58], rax
mov r14d, ebx
mov dword [rsp + 0x24], ebx
cmp dword [rbp + 0x44], ebx
jbe 0x140051e50
mov dword [rsp + 0x6c], ebx
mov dword [rbp - 0x50], ebx
mov word [rsp + 0x68], bx
movsxd rbx, r14d
lea rdx, [rax + rbx*4]
mov r9d, 4
lea r8, [rsp + 0x6c]
mov rcx, r13
call fcn.14005a150
test eax, eax
js 0x140051e2c
xorps xmm0, xmm0
movups xmmword [rbp + 0x190], xmm0
movups xmmword [rbp + 0x1a0], xmm0
movups xmmword [rbp + 0x1b0], xmm0
movups xmmword [rbp + 0x1c0], xmm0
mov edx, dword [rsp + 0x6c]
add rdx, rdi
mov r9d, 0x40
lea r8, [rbp + 0x190]
mov rcx, r13
call fcn.14005a150
test eax, eax
js 0x140051e2c
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
xor ecx, ecx
mov qword [rbp + 8], rcx
mov qword [rbp + 0x10], rcx
lea rax, [rbp + 0x190]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], cl
jne 0x140051ae1
lea rdx, [rbp + 0x190]
lea rcx, [rbp - 8]
call fcn.14000c4c0
nop
mov rax, qword [rsp + 0x30]
lea rdx, [rax + rbx*2]
mov r9d, 2
lea r8, [rsp + 0x68]
mov rcx, r13
call fcn.14005a150
test eax, eax
js 0x140051e23
movzx eax, word [rsp + 0x68]
mov rbx, qword [rsp + 0x38]
lea rdx, [rbx + rax*4]
mov r9d, 4
lea r8, [rbp - 0x50]
mov rcx, r13
call fcn.14005a150
movzx eax, word [rsp + 0x68]
lea rdx, [rbx + rax*4]
mov r9d, 4
lea r8, [rbp - 0x50]
mov rcx, r13
call fcn.14005a150
test eax, eax
js 0x140051e23
mov ebx, dword [rbp - 0x50]
add rbx, rdi
cmp rbx, r15
jb 0x140051d5f
cmp rbx, qword [rsp + 0x40]
jae 0x140051d5f
xor edx, edx
mov r8d, 0xff
lea rcx, [rbp + 0x1d0]
call fcn.1400cdb70
mov r9d, 0xff
lea r8, [rbp + 0x1d0]
mov rdx, rbx
mov rcx, r13
call fcn.14005a150
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
xor eax, eax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
lea rax, [rbp + 0x1d0]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140051bd0
lea rdx, [rbp + 0x1d0]
lea rcx, [rbp - 0x48]
call fcn.14000c4c0
nop
lea rbx, [rbp - 0x48]
cmp qword [rbp - 0x30], 0x10
setae r15b
mov rsi, qword [rbp - 0x48]
cmovae rbx, rsi
mov rdi, qword [rbp - 0x38]
test rdi, rdi
je 0x140051dfc
mov r8, rdi
mov edx, 0x2e
mov rcx, rbx
call fcn.1400cdf10
test rax, rax
je 0x140051dfc
sub rax, rbx
cmp rax, 0xffffffffffffffff
je 0x140051dfc
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
xor ecx, ecx
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x10], rcx
lea r14, [rax + 1]
mov r8, r14
cmp rdi, r14
cmovb r8, rdi
lea rdx, [rbp - 0x48]
test r15b, r15b
cmovne rdx, rsi
lea rcx, [rbp - 0x28]
call fcn.14000c4c0
mov r15d, dword [rsp + 0x20]
or r15d, 2
mov dword [rsp + 0x20], r15d
mov r8d, 3
lea rdx, [0x14010b974]
lea rcx, [rbp - 0x28]
call fcn.140009bf0
lea rsi, [rbp - 0x28]
cmp qword [rbp - 0x10], 0x10
setae cl
mov rbx, qword [rbp - 0x28]
cmovae rsi, rbx
lea rdx, [rbp - 0x28]
mov rdi, qword [rbp - 0x18]
test cl, cl
je 0x140051caf
add rdi, rbx
jmp 0x140051cb6
add rdi, rdx
lea rbx, [rbp - 0x28]
cmp rbx, rdi
je 0x140051cd3
sub rsi, rbx
nop
movsx ecx, byte [rbx]
call fcn.1400d4380
mov byte [rbx + rsi], al
inc rbx
cmp rbx, rdi
jne 0x140051cc0
xorps xmm0, xmm0
movups xmmword [rbp + 0x58], xmm0
xor eax, eax
mov qword [rbp + 0x68], rax
mov qword [rbp + 0x70], rax
mov rax, qword [rbp - 0x38]
cmp rax, r14
jb 0x140051e7d
sub rax, r14
mov r8, 0xffffffffffffffff
cmp rax, r8
cmovb r8, rax
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 0x10
cmovae rdx, qword [rbp - 0x48]
add rdx, r14
lea rcx, [rbp + 0x58]
call fcn.14000c4c0
or r15d, 4
mov dword [rsp + 0x20], r15d
lea r8, [rbp + 0x58]
lea rdx, [rbp - 0x28]
mov rcx, r13
call fcn.140051420
mov rbx, rax
lea rcx, [rbp + 0x58]
call fcn.140009b90
nop
lea rcx, [rbp - 0x28]
call fcn.140009b90
nop
lea rcx, [rbp - 0x48]
call fcn.140009b90
mov r14d, dword [rsp + 0x24]
mov rsi, qword [rsp + 0x28]
mov qword [rbp + 0x28], rbx
mov r8, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x140051d70
mov r8, qword [rsi]
movabs r10, 0xcbf29ce484222325
mov rdx, r10
movabs r9, 0x100000001b3
nop word [rax + rax]
movsx rcx, byte [r8]
lea r8, [r8 + 1]
xor rdx, rcx
imul rdx, r9
test cl, cl
jne 0x140051d90
mov qword [rbp + 0x18], rdx
lea r8, [rbp - 8]
cmp qword [rbp + 0x10], 0x10
cmovae r8, qword [rbp - 8]
mov rdx, r10
nop dword [rax + rax]
movsx rcx, byte [r8]
lea r8, [r8 + 1]
xor rdx, rcx
imul rdx, r9
test cl, cl
jne 0x140051dc0
mov qword [rbp + 0x20], rdx
mov rdx, qword [r12 + 8]
cmp rdx, qword [r12 + 0x10]
je 0x140051e16
movups xmm0, xmmword [rbp + 0x18]
movups xmmword [rdx], xmm0
movsd xmm1, qword [rbp + 0x28]
movsd qword [rdx + 0x10], xmm1
add qword [r12 + 8], 0x18
jmp 0x140051e23
lea rcx, [rbp - 0x48]
call fcn.140009b90
nop
lea rcx, [rbp - 8]
call fcn.140009b90
mov rsi, qword [rsp + 0x28]
jmp 0x140051e2c
lea r8, [rbp + 0x18]
mov rcx, r12
call fcn.140053f80
nop
lea rcx, [rbp - 8]
call fcn.140009b90
inc r14d
mov dword [rsp + 0x24], r14d
cmp r14d, dword [rbp + 0x44]
jae 0x140051e50
mov rdi, qword [rsp + 0x48]
mov r15, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
xor ebx, ebx
jmp 0x140051a51
mov rax, r12
mov rcx, qword [rbp + 0x2d0]
xor rcx, rsp
call fcn.1400cad70
mov rbx, qword [rsp + 0x438]
add rsp, 0x3e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14000a030
nop
int3