Function at 0x180001ff0
Capabilities:
Encode data using xor
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xa0
mov rax, qword [0x180018008]
xor rax, rsp
mov qword [rbp + 0x4f], rax
cmp edx, 1
jne 0x1800025dd
xor eax, eax
mov dword [rbp + 0x3f], 0xf7eaf2fd
xor edi, edi
mov dword [rbp + 0x43], 0xafaff7ff
mov edx, edi
mov dword [rbp + 0x47], 0xcdccfbb0
mov byte [rbp + 0x4b], al
nop dword [rax]
movsxd rax, edx
lea rcx, [rbp + 0x3f]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xc
jb 0x180002040
lea rcx, [rbp + 0x3f]
mov byte [rbp + 0x4b], dil
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp qword [0x180019c08], rdi
mov rbx, rax
jne 0x180002603
xor eax, eax
mov dword [rbp + 7], 0xfdf9f8da
mov byte [rbp + 0x13], al
mov edx, edi
mov dword [rbp + 0xb], 0xeffef2d6
mov dword [rbp + 0xf], 0xe0d9edff
movsxd rax, edx
lea rcx, [rbp + 7]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xc
jb 0x180002090
lea rdx, [rbp + 7]
mov byte [rbp + 0x13], dil
mov rcx, rbx
call fcn.180003850
mov qword [0x180019c08], rax
test rax, rax
je 0x180002603
xor eax, eax
mov dword [rbp - 0x11], 0xc9ecf2d1
mov byte [rbp - 3], al
mov edx, edi
mov dword [rbp - 0xd], 0xdcfff4e8
mov dword [rbp - 9], 0xc4d2fbfa
mov word [rbp - 5], 0xd0d1
nop dword [rax + rax]
movsxd rax, edx
lea rcx, [rbp - 0x11]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xe
jb 0x1800020f0
lea rdx, [rbp - 0x11]
mov byte [rbp - 3], dil
mov rcx, rbx
call fcn.180003850
mov qword [0x180019c68], rax
test rax, rax
je 0x180002603
xor eax, eax
mov dword [rbp + 0x17], 0xebece4fa
mov byte [rbp + 0x1f], al
mov edx, edi
mov dword [rbp + 0x1b], 0xdce5ebf9
nop dword [rax + rax]
movsxd rax, edx
lea rcx, [rbp + 0x17]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 8
jb 0x180002140
lea rdx, [rbp + 0x17]
mov byte [rbp + 0x1f], dil
mov rcx, rbx
call fcn.180003850
movdqa xmm0, xmmword [0x180016370]
xor eax, eax
movdqu xmmword [rbp - 0x11], xmm0
mov byte [rbp - 1], al
mov edx, edi
nop word [rax + rax]
movsxd rax, edx
lea rcx, [rbp - 0x11]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0x10
jb 0x180002180
lea rdx, [rbp - 0x11]
mov byte [rbp - 1], dil
mov rcx, rbx
call fcn.180003850
mov qword [0x180019c10], rax
mov r8, rax
test rax, rax
je 0x180002603
xor eax, eax
mov dword [rbp + 0x27], 0xedeafec0
mov byte [rbp + 0x33], al
mov edx, edi
mov dword [rbp + 0x2b], 0xdcf0faef
mov dword [rbp + 0x2f], 0xc2cff3f2
nop word [rax + rax]
movsxd rax, edx
lea rcx, [rbp + 0x27]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xc
jb 0x1800021e0
xor eax, eax
mov byte [rbp + 0x33], dil
mov byte [rbp + 0x23], al
mov edx, edi
mov dword [rbp + 0x17], 0xf7eaf2fd
mov dword [rbp + 0x1b], 0xafaff7ff
mov dword [rbp + 0x1f], 0xcdccfbb0
nop word [rax + rax]
movsxd rax, edx
lea rcx, [rbp + 0x17]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xc
jb 0x180002220
lea rcx, [rbp + 0x17]
mov byte [rbp + 0x23], dil
call r8
mov rcx, rax
lea rdx, [rbp + 0x27]
call fcn.180003850
mov qword [0x180019c50], rax
mov edx, edi
mov dword [rbp + 7], 0xedeafec0
mov dword [rbp + 0xb], 0xdbf0faef
mov dword [rbp + 0xf], 0xc5faec
nop dword [rax + rax]
movsxd rax, edx
lea rcx, [rbp + 7]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xb
jb 0x180002270
xor eax, eax
mov byte [rbp + 0x12], dil
mov byte [rbp - 5], al
mov edx, edi
mov dword [rbp - 0x11], 0xf7eaf2fd
mov dword [rbp - 0xd], 0xafaff7ff
mov dword [rbp - 9], 0xcdccfbb0
nop word [rax + rax]
movsxd rax, edx
lea rcx, [rbp - 0x11]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xc
jb 0x1800022b0
lea rcx, [rbp - 0x11]
mov byte [rbp - 5], dil
call qword [0x180019c10]
mov rcx, rax
lea rdx, [rbp + 7]
call fcn.180003850
mov qword [0x180019cb0], rax
mov edx, edi
xor eax, eax
mov qword [0x180019bc8], rbx
mov byte [rbp - 3], al
mov dword [rbp - 0x11], 0xedeafec0
mov dword [rbp - 0xd], 0xcdf0faef
mov dword [rbp - 9], 0xc4d4f0ec
mov word [rbp - 5], 0xd7c1
movsxd rax, edx
lea rcx, [rbp - 0x11]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xe
jb 0x180002310
lea rdx, [rbp - 0x11]
mov byte [rbp - 3], dil
mov rcx, rbx
call fcn.180003850
mov qword [0x180019be0], rax
test rax, rax
je 0x180002603
xor eax, eax
mov dword [rbp + 7], 0xeef7ffc5
mov byte [rbp + 0x11], al
mov edx, edi
mov dword [rbp + 0xb], 0xf9f2f2cd
mov word [rbp + 0xf], 0xe8f1
movsxd rax, edx
lea rcx, [rbp + 7]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xa
jb 0x180002361
xor eax, eax
mov byte [rbp + 0x11], dil
mov byte [rbp + 0x21], al
mov edx, edi
mov dword [rbp + 0x17], 0xebfde4e3
mov dword [rbp + 0x1b], 0xf9b2a9a9
mov word [rbp + 0x1f], 0xf3f2
nop word [rax + rax]
movsxd rax, edx
lea rcx, [rbp + 0x17]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xa
jb 0x1800023a0
lea rcx, [rbp + 0x17]
mov byte [rbp + 0x21], dil
call qword [0x180019c08]
mov rcx, rax
lea rdx, [rbp + 7]
call fcn.180003850
movdqa xmm0, xmmword [0x180016320]
mov rbx, rax
xor eax, eax
mov r8d, edi
mov byte [rbp + 0x37], al
movdqu xmmword [rbp + 0x27], xmm0
nop dword [rax + rax]
movsxd rcx, r8d
lea rdx, [rbp + 0x27]
add rdx, rcx
lea ecx, [r8 - 0x6a]
inc r8d
xor byte [rdx], cl
cmp r8d, 0x10
jb 0x1800023f0
mov byte [rbp + 0x37], al
mov edx, edi
mov dword [rbp - 0x11], 0xf7eaf2fd
mov dword [rbp - 0xd], 0xafaff7ff
mov dword [rbp - 9], 0xcdccfbb0
mov byte [rbp - 5], al
nop word [rax + rax]
movsxd rax, edx
lea rcx, [rbp - 0x11]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xc
jb 0x180002430
lea rcx, [rbp - 0x11]
mov byte [rbp - 5], dil
call qword [0x180019c10]
mov rcx, rax
lea rdx, [rbp + 0x27]
call fcn.180003850
test rbx, rbx
je 0x180002603
test rax, rax
je 0x180002603
call rax
mov rcx, rax
xor edx, edx
call rbx
mov r8, qword [0x180019c10]
mov dword [rbp - 0x19], edi
mov dword [rbp - 0x15], edi
mov dword [rbp - 5], edi
test r8, r8
je 0x18000252c
xor ecx, ecx
call r8
test rax, rax
je 0x180002525
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x180002525
movsxd rcx, dword [rax + 0x3c]
cmp dword [rcx + rax], 0x4550
jne 0x180002525
mov ecx, dword [rcx + rax + 0x28]
lea rbx, [rax + 4]
lea rax, [0x180001c90]
mov word [rbp - 0x11], 0xb848
mov qword [rbp - 0xf], rax
add rbx, rcx
mov rax, qword [0x180019be0]
mov word [rbp - 7], 0xd0ff
test rax, rax
je 0x180002525
mov edx, 0xc
lea r9, [rbp - 0x19]
mov rcx, rbx
lea r8d, [rdx - 8]
call rax
test eax, eax
jle 0x180002525
mov r8d, 0xc
lea rdx, [rbp - 0x11]
mov rcx, rbx
call fcn.180005380
mov r8d, dword [rbp - 0x19]
lea r9, [rbp - 0x15]
mov edx, 0xc
mov rcx, rbx
call qword [0x180019be0]
mov r8, qword [0x180019c10]
xor eax, eax
mov dword [rbp + 0x27], 0xf8fde5d5
mov byte [rbp + 0x33], al
mov edx, edi
mov dword [rbp + 0x2b], 0xf5c8feee
mov dword [rbp + 0x2f], 0xc5c1faec
nop dword [rax + rax]
movsxd rax, edx
lea rcx, [rbp + 0x27]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xc
jb 0x180002550
xor eax, eax
mov byte [rbp + 0x33], dil
mov byte [rbp - 5], al
mov edx, edi
mov dword [rbp - 0x11], 0xf7eaf2fd
mov dword [rbp - 0xd], 0xafaff7ff
mov dword [rbp - 9], 0xcdccfbb0
nop word [rax + rax]
movsxd rax, edx
lea rcx, [rbp - 0x11]
add rcx, rax
lea eax, [rdx - 0x6a]
inc edx
xor byte [rcx], al
cmp edx, 0xc
jb 0x180002590
lea rcx, [rbp - 0x11]
mov byte [rbp - 5], dil
call r8
mov rcx, rax
lea rdx, [rbp + 0x27]
call fcn.180003850
xor r9d, r9d
mov qword [rsp + 0x28], rdi
lea r8, [0x180001e40]
mov qword [0x180019bd0], rax
xor edx, edx
mov dword [rsp + 0x20], edi
xor ecx, ecx
call rax
mov eax, 1
mov rcx, qword [rbp + 0x4f]
xor rcx, rsp
call fcn.180003960
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret
xor eax, eax
jmp 0x1800025e2