Function at 0x180037850
Capabilities:
Access peb ldr_data
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa0
mov qword [rsp + 0x90], rcx
cmp edx, 1
jne 0x180037cee
mov rsi, qword [0x1801d4e60]
test rsi, rsi
jne 0x180037929
mov rax, qword gs:[0x60]
mov r8, qword [rax + 0x18]
add r8, 0x10
mov r8, qword [r8]
mov rax, qword [r8 + 0x30]
movsxd rcx, dword [rax + 0x3c]
mov edi, dword [rax + rcx + 0x88]
test rdi, rdi
je 0x180037894
mov edx, dword [rax + rdi + 0x18]
lea r9, [rax + 1]
jmp 0x1800378cd
mov ecx, 0x812b7bc7
cmp ecx, 0x1c3efd97
je 0x180037908
sub rdx, 1
jb 0x180037894
mov ecx, dword [rax + rdi + 0x20]
add rcx, rax
mov esi, dword [rcx + rdx*4]
mov bl, byte [rax + rsi]
test bl, bl
je 0x1800378c0
add rsi, r9
mov ecx, 0x812b7bc7
nop dword [rax]
movsx ebx, bl
xor ebx, ecx
imul ecx, ebx, 0x1035edd
movzx ebx, byte [rsi]
add rsi, 1
test bl, bl
jne 0x1800378f0
jmp 0x1800378c5
mov ecx, dword [rax + rdi + 0x1c]
mov ebx, dword [rax + rdi + 0x24]
add rcx, rax
add rbx, rax
mov edx, edx
movzx edx, word [rbx + rdx*2]
mov esi, dword [rcx + rdx*4]
add rsi, rax
mov qword [0x1801d4e60], rsi
lea rcx, [rsp + 0x90]
call fcn.1800012e0
mov rcx, qword [rax]
call rsi
mov rcx, qword [0x1801d4e68]
test rcx, rcx
jne 0x1800379e9
mov rax, qword gs:[0x60]
mov r8, qword [rax + 0x18]
add r8, 0x10
mov r8, qword [r8]
mov rax, qword [r8 + 0x30]
movsxd rcx, dword [rax + 0x3c]
mov edi, dword [rax + rcx + 0x88]
test rdi, rdi
je 0x18003795c
mov edx, dword [rax + rdi + 0x18]
lea r9, [rax + 1]
jmp 0x18003798d
mov ecx, 0x812b7bc7
cmp ecx, 0x11569cf8
je 0x1800379c8
sub rdx, 1
jb 0x18003795c
mov ecx, dword [rax + rdi + 0x20]
add rcx, rax
mov esi, dword [rcx + rdx*4]
mov bl, byte [rax + rsi]
test bl, bl
je 0x180037980
add rsi, r9
mov ecx, 0x812b7bc7
nop dword [rax]
movsx ebx, bl
xor ebx, ecx
imul ecx, ebx, 0x1035edd
movzx ebx, byte [rsi]
add rsi, 1
test bl, bl
jne 0x1800379b0
jmp 0x180037985
mov ecx, dword [rax + rdi + 0x1c]
mov ebx, dword [rax + rdi + 0x24]
add rcx, rax
add rbx, rax
mov edx, edx
movzx edx, word [rbx + rdx*2]
mov ecx, dword [rcx + rdx*4]
add rcx, rax
mov qword [0x1801d4e68], rcx
call rcx
mov rcx, qword [0x1801d4e70]
test rcx, rcx
jne 0x180037a99
mov rax, qword gs:[0x60]
mov r8, qword [rax + 0x18]
add r8, 0x10
mov r8, qword [r8]
mov rax, qword [r8 + 0x30]
movsxd rcx, dword [rax + 0x3c]
mov edi, dword [rax + rcx + 0x88]
test rdi, rdi
je 0x180037a0c
mov edx, dword [rax + rdi + 0x18]
lea r9, [rax + 1]
jmp 0x180037a3d
mov ecx, 0x812b7bc7
cmp ecx, 0x83258845
je 0x180037a78
sub rdx, 1
jb 0x180037a0c
mov ecx, dword [rax + rdi + 0x20]
add rcx, rax
mov esi, dword [rcx + rdx*4]
mov bl, byte [rax + rsi]
test bl, bl
je 0x180037a30
add rsi, r9
mov ecx, 0x812b7bc7
nop dword [rax]
movsx ebx, bl
xor ebx, ecx
imul ecx, ebx, 0x1035edd
movzx ebx, byte [rsi]
add rsi, 1
test bl, bl
jne 0x180037a60
jmp 0x180037a35
mov ecx, dword [rax + rdi + 0x1c]
mov ebx, dword [rax + rdi + 0x24]
add rcx, rax
add rbx, rax
mov edx, edx
movzx edx, word [rbx + rdx*2]
mov ecx, dword [rcx + rdx*4]
add rcx, rax
mov qword [0x1801d4e70], rcx
call rcx
mov ecx, 1
call fcn.180076b94
movabs r14, 0x688c09a04257f18c
mov qword [rsp + 0x30], r14
movabs rdi, 0x4480dbf93393462c
mov qword [rsp + 0x38], rdi
movabs r13, 0x688c09a0425793fb
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], rdi
lea r12, [rsp + 0x60]
mov rbx, r12
movaps xmm0, xmmword [rsp + 0x30]
xorps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x30], xmm0
movabs rsi, 0x68a85df50d19dcb8
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], rdi
movaps xmm0, xmmword [rsp + 0x20]
xorps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x20], xmm0
lea r15, [rsp + 0x98]
lea rdx, [rsp + 0x20]
lea r8, [rsp + 0x30]
mov rcx, r15
mov r9, rax
call fcn.180080114
mov ecx, 2
call fcn.180076b94
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], rdi
movaps xmm0, xmmword [rsp + 0x30]
xorps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], rdi
movaps xmm0, xmmword [rsp + 0x20]
xorps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
lea r8, [rsp + 0x30]
mov rcx, r15
mov r9, rax
call fcn.180080114
xor ecx, ecx
call fcn.180076b94
movabs rcx, 0x688c09a04257f189
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], rdi
movaps xmm0, xmmword [rsp + 0x30]
xorps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x30], xmm0
movabs rcx, 0x688c2dee0b19dcb8
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], rdi
movaps xmm0, xmmword [rsp + 0x20]
xorps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x20], xmm0
lea rdx, [rsp + 0x20]
lea r14, [rsp + 0x30]
mov rcx, r15
mov r8, r14
mov r9, rax
call fcn.180080114
movabs rax, 0x6e562c32327fdae
mov qword [rsp + 0x30], rax
movabs rax, 0x2cd4f3d91dbd684b
mov qword [rsp + 0x38], rax
movabs rax, 0x18576890a04f4804
mov qword [rsp + 0x40], rax
movabs rax, 0xd1d064d2509a1a45
mov qword [rsp + 0x48], rax
movabs rax, 0x1f29bc7d148ff26e
mov qword [rsp + 0x50], rax
movabs rax, 0xc31a026cea8c544e
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], rdi
movabs rax, 0x7d3407e2d06f3b6d
mov qword [rsp + 0x70], rax
movabs rax, 0xa5f01db33dba6936
mov qword [rsp + 0x78], rax
movabs rax, 0x76449c1c34ea990f
mov qword [rsp + 0x80], rax
movabs rax, 0xc31a08458ff82120
mov qword [rsp + 0x88], rax
movaps xmm0, xmmword [rsp + 0x30]
xorps xmm0, xmmword [r12]
movaps xmmword [rsp + 0x30], xmm0
movaps xmm0, xmmword [rsp + 0x40]
xorps xmm0, xmmword [r12 + 0x10]
movaps xmmword [rsp + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x50]
xorps xmm0, xmmword [r12 + 0x20]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], r14
lea rcx, [rsp + 0x60]
call fcn.18001a170
mov eax, 1
add rsp, 0xa0
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret