Function at 0x1800183c0
Capabilities:
Access peb ldr_data
Encode data using xor
Get system firmware table
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x130
xor r15d, r15d
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r15
mov qword [rbp - 0x68], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x80], r15b
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0x52534d42
call qword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
mov esi, eax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], r15
test eax, eax
je 0x180018444
mov edx, esi
lea rcx, [rbp - 0x60]
call fcn.18003d4d0
mov r14, qword [rbp - 0x60]
lea rbx, [rsi + r14]
mov r8, rbx
sub r8, r14
xor edx, edx
mov rcx, r14
call fcn.18018a540
mov qword [rbp - 0x58], rbx
jmp 0x180018448
mov r14, qword [rbp - 0x60]
mov r9d, esi
mov r8, r14
xor edx, edx
mov ecx, 0x52534d42
call qword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
mov r8d, 1
mov qword [rbp - 0x48], r8
mov dword [rbp - 0x40], 7
mov r10d, r15d
lea r11, [r14 + 4]
lea rdx, [rsi + r14]
lea r9, [rbp - 0x48]
nop dword [rax + rax]
mov rax, r11
cmp r11, rdx
jae 0x1800184bf
movzx ecx, byte [rax]
cmp ecx, r8d
je 0x1800184d5
movzx ecx, byte [rax + 1]
add rax, rcx
cmp rax, rdx
jae 0x1800184b6
nop dword [rax]
lea rcx, [rax + 1]
cmp byte [rax], 0
jne 0x1800184ae
cmp byte [rcx], 0
je 0x1800184b6
mov rax, rcx
cmp rcx, rdx
jb 0x1800184a0
add rax, 2
cmp rax, rdx
jb 0x180018488
inc r10d
add r9, 4
cmp r10d, 3
jae 0x180018774
mov r8d, dword [r9]
jmp 0x180018480
movzx ecx, byte [rax + 0x17]
movzx edx, byte [rax + 0x16]
movzx r8d, byte [rax + 0x15]
movzx r10d, byte [rax + 0x14]
movzx r11d, byte [rax + 0x13]
movzx ebx, byte [rax + 0x12]
movzx edi, byte [rax + 0x11]
movzx esi, byte [rax + 0x10]
movzx r14d, byte [rax + 0xe]
movzx r15d, byte [rax + 0xf]
movzx r12d, byte [rax + 0xc]
movzx r13d, byte [rax + 0xd]
movzx r9d, byte [rax + 8]
mov dword [rbp + 0x50], r9d
movzx r9d, byte [rax + 9]
mov dword [rbp + 0x58], r9d
movzx r9d, byte [rax + 0xa]
mov dword [rbp + 0x60], r9d
movzx r9d, byte [rax + 0xb]
mov dword [rsp + 0x90], ecx
mov dword [rsp + 0x88], edx
mov dword [rsp + 0x80], r8d
mov dword [rsp + 0x78], r10d
mov dword [rsp + 0x70], r11d
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x48], r15d
mov dword [rsp + 0x40], r12d
mov dword [rsp + 0x38], r13d
mov eax, dword [rbp + 0x50]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x58]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x60]
mov dword [rsp + 0x20], eax
lea r8, str._02X_02X_02X_02X__02X_02X__02X_02X__02X_02X__02X_02X_02X_02X_02X_02X
mov edx, 0x25
lea rcx, [rbp - 0x18]
call fcn.180006a70
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
xor r12d, r12d
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x20], r12
lea rax, [rbp - 0x18]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], r12b
jne 0x1800185b3
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x38]
call fcn.18003a510
mov rdx, qword [rbp - 0x68]
cmp rdx, 0xf
jbe 0x180018604
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800185ff
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180018814
call fcn.1800c17e8
movups xmm0, xmmword [rbp - 0x38]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rbp - 0x28]
movups xmmword [rbp - 0x70], xmm1
mov ecx, 0x30
call fcn.1800c1d94
mov r15, rax
mov dword [rbp + 0x50], r12d
mov rax, qword [0x180232f90]
test rax, rax
jne 0x1800186f5
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rdi, qword [rax]
mov r14, rdi
nop dword [rax]
mov r11, qword [rdi + 0x30]
movsxd rax, dword [r11 + 0x3c]
mov ebx, dword [rax + r11 + 0x88]
add rbx, r11
cmp rbx, r11
je 0x1800186d9
mov r10d, dword [rbx + 0x18]
test r10d, r10d
je 0x1800186d9
mov esi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r10d
lea rcx, [rsi + r10*4]
mov r8d, dword [rcx + r11]
add r8, r11
mov r9d, 0x6e9df1fa
movzx edx, byte [r8]
inc r8
test dl, dl
je 0x1800186d4
nop
movsx eax, dl
sub dl, 0x41
mov ecx, eax
or ecx, 0x20
cmp dl, 0x19
cmova ecx, eax
xor ecx, r9d
imul r9d, ecx, 0x1000193
movzx edx, byte [r8]
lea r8, [r8 + 1]
test dl, dl
jne 0x1800186a0
cmp r9d, 0x24edb175
je 0x180018758
test r10d, r10d
jne 0x180018680
mov rdi, qword [rdi]
cmp rdi, r14
je 0x1800186eb
cmp qword [rdi + 0x30], r12
jne 0x180018650
mov rax, r12
mov qword [0x180232f90], rax
mov r14, qword [rbp - 0x60]
mov dword [rbp + 0x58], 0x5c3a4372
mov byte [rbp + 0x5c], r12b
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x50]
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0x59]
call rax
test eax, eax
je 0x18001872f
mov r12d, dword [rbp + 0x50]
lea r9, [rbp - 0x80]
cmp qword [rbp - 0x68], 0xf
cmova r9, qword [rbp - 0x80]
mov dword [rsp + 0x20], r12d
lea r8, str._s__08X
mov edx, 0x30
mov rcx, r15
call fcn.180006a70
jmp 0x180018783
mov edx, dword [rbx + 0x1c]
add rdx, r11
mov ecx, dword [rbx + 0x24]
add rcx, r11
movzx ecx, word [rcx + r10*2]
mov eax, dword [rdx + rcx*4]
add rax, r11
jmp 0x1800186ee
lea rcx, str.00000000_0000_0000_0000_000000000000
call fcn.1800d0820
mov r15, rax
test r14, r14
je 0x1800187b9
mov rdx, qword [rbp - 0x50]
sub rdx, r14
mov rax, r14
cmp rdx, 0x1000
jb 0x1800187b0
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001881a
mov rcx, r14
call fcn.1800c17e8
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 0xf
jbe 0x1800187f0
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800187eb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18001880e
call fcn.1800c17e8
mov rax, r15
mov rbx, qword [rsp + 0x188]
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1800e1ef4
nop
call fcn.1800e1ef4
nop
call fcn.1800e1ef4
int3