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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xb0
mov rax, qword [0x14010f080]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov r15, rcx
mov qword [rbp - 0x19], rcx
xor r13d, r13d
mov dword [rbp + 0xf], r13d
movabs rax, 0xfccbb77cf3ab6fc9
mov qword [rbp - 0x39], rax
mov rax, qword [rbp - 0x39]
mov qword [rbp - 0x29], rax
movabs rcx, 0x59194d8e2b40e046
mov qword [rbp - 0x39], rcx
mov rax, qword [rbp - 0x39]
mov qword [rbp - 0x21], rax
movabs rax, 0xfc97b743f3f76f95
mov qword [rbp - 0x39], rax
mov rax, qword [rbp - 0x39]
mov qword [rbp + 0x17], rax
mov qword [rbp - 0x39], rcx
mov rax, qword [rbp - 0x39]
mov qword [rbp + 0x1f], rax
movdqa xmm0, xmmword [rbp - 0x29]
xorps xmm0, xmmword [rbp + 0x17]
movdqa xmmword [rbp - 0x29], xmm0
mov r8, r15
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x11]
call fcn.140068240
nop
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rsi, qword [rax]
mov rbx, rsi
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rbx + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov r11d, dword [rax + r9 + 0x88]
add r11, r9
cmp r11, r9
je 0x140054787
mov r8d, dword [r11 + 0x18]
test r8d, r8d
je 0x140054787
mov edi, dword [r11 + 0x20]
nop word [rax + rax]
dec r8d
lea rax, [rdi + r8*4]
mov eax, dword [rax + r9]
add rax, r9
mov edx, 0x33ad497d
movzx ecx, byte [rax]
inc rax
test cl, cl
je 0x140054782
nop dword [rax]
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
movzx ecx, byte [rax]
lea rax, [rax + 1]
test cl, cl
jne 0x140054760
cmp edx, 0x8036d2cc
je 0x14005495b
test r8d, r8d
jne 0x140054740
mov rax, qword [rbx]
mov rbx, rax
cmp rax, rsi
je 0x14005479d
cmp qword [rax + 0x30], 0
jne 0x140054710
mov r10, r13
lea rcx, [rbp - 0x11]
cmp qword [rbp + 7], 7
cmova rcx, qword [rbp - 0x11]
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
call r10
mov r12, rax
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rsi, qword [rcx]
mov rbx, rsi
nop dword [rax + rax]
mov r9, qword [rbx + 0x30]
movsxd rcx, dword [r9 + 0x3c]
mov r11d, dword [rcx + r9 + 0x88]
add r11, r9
cmp r11, r9
je 0x140054867
mov r8d, dword [r11 + 0x18]
test r8d, r8d
je 0x140054867
mov edi, dword [r11 + 0x20]
nop word [rax + rax]
dec r8d
lea rax, [rdi + r8*4]
mov ecx, dword [rax + r9]
add rcx, r9
mov edx, 0x26b3b2ff
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x140054862
nop dword [rax]
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
test al, al
jne 0x140054840
cmp edx, 0xac6f32c9
je 0x14005497a
test r8d, r8d
jne 0x140054820
mov rax, qword [rbx]
mov rbx, rax
cmp rax, rsi
je 0x14005487d
cmp qword [rax + 0x30], 0
jne 0x1400547f0
mov rdx, r13
call rdx
cmp eax, 0x50
jne 0x140054998
mov rdx, qword [rbp + 7]
cmp rdx, 7
jbe 0x1400548cb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400548c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140054c12
call fcn.1400d2750
movdqa xmm0, xmmword [0x1400fafd0]
movdqu xmmword [rbp - 1], xmm0
mov word [rbp - 0x11], r13w
mov rdx, qword [r15 + 0x18]
cmp rdx, 7
jbe 0x14005491c
lea rdx, [rdx*2 + 2]
mov rcx, qword [r15]
cmp rdx, 0x1000
jb 0x140054917
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140054c56
mov rcx, r8
call fcn.1400d2750
mov al, 1
mov word [r15], r13w
mov qword [r15 + 0x18], 7
mov qword [r15 + 0x10], r13
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.1400d2300
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, dword [r11 + 0x1c]
add rcx, r9
mov eax, dword [r11 + 0x24]
add rax, r9
movzx eax, word [rax + r8*2]
mov r10d, dword [rcx + rax*4]
add r10, r9
jmp 0x1400547a0
mov ecx, dword [r11 + 0x1c]
add rcx, r9
mov eax, dword [r11 + 0x24]
add rax, r9
movzx eax, word [rax + r8*2]
mov edx, dword [rcx + rax*4]
add rdx, r9
jmp 0x140054880
cmp r12, 0xffffffffffffffff
jne 0x140054a3a
mov rdx, qword [rbp + 7]
cmp rdx, 7
jbe 0x1400549e2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x11]
cmp rdx, 0x1000
mov rax, rcx
jb 0x1400549dd
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140054c12
call fcn.1400d2750
movdqa xmm0, xmmword [0x1400fafd0]
mov word [rbp - 0x11], r13w
movdqu xmmword [rbp - 1], xmm0
mov rdx, qword [r15 + 0x18]
cmp rdx, 7
jbe 0x140054a33
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
mov rcx, qword [r15]
jb 0x140054a2e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140054c56
mov rcx, r8
call fcn.1400d2750
xor al, al
jmp 0x14005491e
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rsi, qword [rax]
mov rbx, rsi
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rbx + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov r11d, dword [rax + r9 + 0x88]
add r11, r9
cmp r11, r9
je 0x140054ad7
mov r8d, dword [r11 + 0x18]
test r8d, r8d
je 0x140054ad7
mov edi, dword [r11 + 0x20]
nop word [rax + rax]
dec r8d
lea rax, [r9 + r8*4]
mov ecx, dword [rax + rdi]
add rcx, r9
mov edx, 0x8b5b15e3
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x140054ad2
nop dword [rax]
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
test al, al
jne 0x140054ab0
cmp edx, 0x727bdd0
je 0x140054c19
test r8d, r8d
jne 0x140054a90
mov rax, qword [rbx]
mov rbx, rax
cmp rax, rsi
je 0x140054aed
cmp qword [rax + 0x30], 0
jne 0x140054a60
mov r10, r13
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0xf]
mov r8d, 0x55e00
lea rdx, [0x14017c610]
mov rcx, r12
call r10
mov r14d, eax
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rsi, qword [rcx]
mov rbx, rsi
nop word [rax + rax]
mov r9, qword [rbx + 0x30]
movsxd rcx, dword [r9 + 0x3c]
mov r11d, dword [rcx + r9 + 0x88]
add r11, r9
cmp r11, r9
je 0x140054ba7
mov r8d, dword [r11 + 0x18]
test r8d, r8d
je 0x140054ba7
mov edi, dword [r11 + 0x20]
nop word [rax + rax]
dec r8d
lea rax, [r9 + r8*4]
mov ecx, dword [rax + rdi]
add rcx, r9
mov edx, 0xa5cd9aef
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x140054ba2
nop dword [rax]
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [rcx]
lea rcx, [rcx + 1]
test al, al
jne 0x140054b80
cmp edx, 0xa2998f63
je 0x140054c38
test r8d, r8d
jne 0x140054b60
mov rax, qword [rbx]
mov rbx, rax
cmp rax, rsi
je 0x140054bbd
cmp qword [rax + 0x30], 0
jne 0x140054b30
mov rdx, r13
mov rcx, r12
call rdx
nop
mov rdx, qword [rbp + 7]
test r14b, r14b
je 0x1400549a6
cmp rdx, 7
jbe 0x1400548cb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400548c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400548c6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov ecx, dword [r11 + 0x1c]
add rcx, r9
mov eax, dword [r11 + 0x24]
add rax, r9
movzx eax, word [rax + r8*2]
mov r10d, dword [rcx + rax*4]
add r10, r9
jmp 0x140054af0
mov ecx, dword [r11 + 0x1c]
add rcx, r9
mov eax, dword [r11 + 0x24]
add rax, r9
movzx eax, word [rax + r8*2]
mov edx, dword [rcx + rax*4]
add rdx, r9
jmp 0x140054bc0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3