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

Disassembly:
mov qword [rsp + 8], rbx
mov byte [rsp + 0x18], r8b
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor r15d, r15d
xor r13d, r13d
xor r9b, r9b
mov qword [rsp + 0x30], r15
xor ebx, ebx
xor ebp, ebp
xor r14d, r14d
mov r12b, r8b
mov rsi, rdx
mov rdi, rcx
cmp qword [rdx + 0x10], rbx
jbe 0x180046f51
lea r10, [0x1800b7d30]
cmp qword [rsi + 0x18], 0xf
mov rcx, rsi
jbe 0x18004697e
mov rcx, qword [rsi]
movzx eax, byte [rcx + r15]
movzx edx, byte [rcx + r15]
movzx r8d, byte [rax + r10]
test r9b, r9b
je 0x1800469a3
mov eax, r13d
and edx, 0x3f
shl eax, 6
mov r13d, edx
or r13d, eax
jmp 0x1800469b2
mov cl, r8b
mov r13d, 0xff
shr r13d, cl
and r13d, edx
movzx ecx, r9b
shl rcx, 4
add rcx, r8
movzx r9d, byte [rcx + r10 + 0x100]
mov byte [rsp + 0x98], r9b
test r9b, r9b
je 0x180046b52
cmp r9d, 1
je 0x180046a02
test r12b, r12b
jne 0x1800469fa
cmp qword [rsi + 0x18], 0xf
mov rax, rsi
jbe 0x1800469ef
mov rax, qword [rsi]
mov al, byte [rax + r15]
mov byte [rbx + rdi + 0x5a], al
inc rbx
inc r14
jmp 0x180046e15
lea rdx, [rdi + 0x280]
mov ecx, dword [rdx]
test ecx, ecx
je 0x180046a26
sub ecx, 1
je 0x180046ade
cmp ecx, 1
je 0x180046ade
jmp 0x180046e15
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r9, qword [rax + 0x30]
movsxd rcx, dword [r9 + 0x3c]
mov r11d, dword [rcx + r9 + 0x88]
add r11, r9
cmp r11, r9
je 0x180046aa9
mov r10d, dword [r11 + 0x18]
test r10d, r10d
je 0x180046aa9
mov r15d, dword [r11 + 0x20]
dec r10d
mov esi, 0xe00421fb
lea rdx, [r15 + r10*4]
mov r8d, dword [rdx + r9]
add r8, r9
mov bl, byte [r8]
inc r8
test bl, bl
je 0x180046aa4
movsx ecx, bl
sub bl, 0x41
mov edx, ecx
or edx, 0x20
cmp bl, 0x19
mov bl, byte [r8]
cmova edx, ecx
inc r8
xor edx, esi
imul esi, edx, 0x1000193
test bl, bl
jne 0x180046a79
cmp esi, 0xc0575a17
je 0x180046aae
test r10d, r10d
jne 0x180046a5c
mov rax, qword [rax]
jmp 0x180046a37
mov ecx, dword [r11 + 0x24]
add rcx, r9
movzx r8d, word [rcx + r10*2]
mov ecx, dword [r11 + 0x1c]
add rcx, r9
mov eax, dword [rcx + r8*4]
add rax, r9
call rax
mov rsi, qword [rsp + 0x88]
lea rdx, [rdi + 0x280]
mov r15, qword [rsp + 0x30]
test r14, r14
je 0x180046ae6
dec r15
cmp dword [rdx], 1
mov rbx, rbp
jne 0x180046b47
lea rbx, [rbp + 1]
test r12b, r12b
je 0x180046b0f
mov byte [rdi + rbp + 0x5a], 0x5c
mov dword [rbx + rdi + 0x5a], 0x66666675
add rbx, 4
mov byte [rbx + rdi + 0x5a], 0x64
jmp 0x180046b21
mov byte [rdi + rbp + 0x5a], 0xef
mov byte [rbx + rdi + 0x5a], 0xbf
inc rbx
mov byte [rbx + rdi + 0x5a], 0xbd
inc rbx
mov eax, 0x200
sub rax, rbx
cmp rax, 0xd
jae 0x180046b44
mov rcx, qword [rdi]
lea rdx, [rdi + 0x5a]
mov r8, rbx
mov rax, qword [rcx]
call qword [rax + 8]
xor ebx, ebx
mov rbp, rbx
xor r14d, r14d
xor r9b, r9b
jmp 0x180046e0e
mov eax, r13d
sub eax, 8
je 0x180046dd5
sub eax, 1
je 0x180046dcc
sub eax, 1
je 0x180046dc3
sub eax, 2
je 0x180046dba
sub eax, 1
je 0x180046db1
sub eax, 0x15
je 0x180046da8
cmp eax, 0x3a
je 0x180046d9f
cmp r13d, 0x1f
jbe 0x180046bc2
test r12b, r12b
je 0x180046ba5
cmp r13d, 0x7f
jae 0x180046bc2
cmp qword [rsi + 0x18], 0xf
mov rax, rsi
jbe 0x180046bb2
mov rax, qword [rsi]
mov al, byte [rax + r15]
mov byte [rbx + rdi + 0x5a], al
inc rbx
jmp 0x180046de0
mov rax, qword gs:[0x60]
lea r15, [rdi + 0x5a]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
cmp r13d, 0xffff
ja 0x180046ca6
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov r11d, dword [rcx + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x180046c5b
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x180046c5b
mov r14d, dword [r11 + 0x20]
dec r9d
mov ebp, 0x5ea03c22
lea rdx, [r10 + r9*4]
mov r8d, dword [rdx + r14]
add r8, r10
mov sil, byte [r8]
inc r8
test sil, sil
je 0x180046c56
movsx ecx, sil
sub sil, 0x41
mov edx, ecx
or edx, 0x20
cmp sil, 0x19
mov sil, byte [r8]
cmova edx, ecx
inc r8
xor edx, ebp
imul ebp, edx, 0x1000193
test sil, sil
jne 0x180046c27
cmp ebp, 0xd7328c38
je 0x180046c60
test r9d, r9d
jne 0x180046c09
mov rax, qword [rax]
jmp 0x180046be4
mov edx, dword [r11 + 0x24]
lea r8, str.u_04x
add rdx, r10
lea rcx, [r15 + rbx]
movzx r9d, word [rdx + r9*2]
mov edx, dword [r11 + 0x1c]
add rdx, r10
mov eax, dword [rdx + r9*4]
mov edx, 7
add rax, r10
movzx r9d, r13w
call rax
mov rsi, qword [rsp + 0x88]
add rbx, 6
mov r15, qword [rsp + 0x30]
jmp 0x180046de0
mov ecx, 0x3ff
movzx r14d, r13w
and r14w, cx
mov r15d, r13d
mov ecx, 0x2400
shr r15d, 0xa
sub r14w, cx
mov ecx, 0x2840
sub r15w, cx
mov r9, qword [rax + 0x30]
movsxd rcx, dword [r9 + 0x3c]
mov r11d, dword [rcx + r9 + 0x88]
add r11, r9
cmp r11, r9
je 0x180046d43
mov r10d, dword [r11 + 0x18]
test r10d, r10d
je 0x180046d43
mov r12d, dword [r11 + 0x20]
dec r10d
mov ebp, 0xfa84aa0d
lea rdx, [r9 + r10*4]
mov r8d, dword [rdx + r12]
add r8, r9
mov sil, byte [r8]
inc r8
test sil, sil
je 0x180046d3e
movsx ecx, sil
sub sil, 0x41
mov edx, ecx
or edx, 0x20
cmp sil, 0x19
mov sil, byte [r8]
cmova edx, ecx
inc r8
xor edx, ebp
imul ebp, edx, 0x1000193
test sil, sil
jne 0x180046d0f
cmp ebp, 0xda3b98e7
je 0x180046d48
test r10d, r10d
jne 0x180046cf1
mov rax, qword [rax]
jmp 0x180046ccc
mov ecx, dword [r11 + 0x24]
mov edx, 0xd
add rcx, r9
movzx eax, r14w
mov dword [rsp + 0x20], eax
movzx r8d, word [rcx + r10*2]
mov ecx, dword [r11 + 0x1c]
add rcx, r9
mov r10d, dword [rcx + r8*4]
lea rcx, [rdi + 0x5a]
add r10, r9
lea r8, str.u_04xu_04x
movzx r9d, r15w
add rcx, rbx
call r10
mov rsi, qword [rsp + 0x88]
add rbx, 0xc
mov r15, qword [rsp + 0x30]
mov r12b, byte [rsp + 0x90]
jmp 0x180046de0
mov word [rbx + rdi + 0x5a], 0x5c5c
jmp 0x180046ddc
mov word [rbx + rdi + 0x5a], 0x225c
jmp 0x180046ddc
mov word [rbx + rdi + 0x5a], 0x725c
jmp 0x180046ddc
mov word [rbx + rdi + 0x5a], 0x665c
jmp 0x180046ddc
mov word [rbx + rdi + 0x5a], 0x6e5c
jmp 0x180046ddc
mov word [rbx + rdi + 0x5a], 0x745c
jmp 0x180046ddc
mov word [rbx + rdi + 0x5a], 0x625c
add rbx, 2
mov eax, 0x200
sub rax, rbx
cmp rax, 0xd
jae 0x180046e00
mov rcx, qword [rdi]
lea rdx, [rdi + 0x5a]
mov r8, rbx
mov rax, qword [rcx]
call qword [rax + 8]
xor ebx, ebx
mov r9b, byte [rsp + 0x98]
mov rbp, rbx
xor r14d, r14d
lea r10, [0x1800b7d30]
inc r15
mov qword [rsp + 0x30], r15
cmp r15, qword [rsi + 0x10]
jb 0x180046971
test r9b, r9b
jne 0x180046e3d
test rbx, rbx
je 0x180046f51
mov r8, rbx
jmp 0x180046f44
mov ecx, dword [rdi + 0x280]
test ecx, ecx
je 0x180046e9d
sub ecx, 1
je 0x180046e5a
cmp ecx, 1
je 0x180046f41
jmp 0x180046f51
mov rcx, qword [rdi]
lea rdx, [rdi + 0x5a]
mov r8, rbp
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov r9, qword [rax + 8]
test r12b, r12b
je 0x180046e88
mov r8d, 6
lea rdx, str.ufffd
jmp 0x180046e95
mov r8d, 3
lea rdx, [0x1800b7d20]
call r9
jmp 0x180046f51
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r9, qword [rax + 0x30]
movsxd rcx, dword [r9 + 0x3c]
mov r11d, dword [rcx + r9 + 0x88]
add r11, r9
cmp r11, r9
je 0x180046f20
mov r10d, dword [r11 + 0x18]
test r10d, r10d
je 0x180046f20
mov r14d, dword [r11 + 0x20]
dec r10d
mov esi, 0x5c612ca0
lea rdx, [r9 + r10*4]
mov r8d, dword [rdx + r14]
add r8, r9
mov bl, byte [r8]
inc r8
test bl, bl
je 0x180046f1b
movsx ecx, bl
sub bl, 0x41
mov edx, ecx
or edx, 0x20
cmp bl, 0x19
mov bl, byte [r8]
cmova edx, ecx
inc r8
xor edx, esi
imul esi, edx, 0x1000193
test bl, bl
jne 0x180046ef0
cmp esi, 0xd6e365a2
je 0x180046f25
test r10d, r10d
jne 0x180046ed3
mov rax, qword [rax]
jmp 0x180046eae
mov ecx, dword [r11 + 0x24]
add rcx, r9
movzx r8d, word [rcx + r10*2]
mov ecx, dword [r11 + 0x1c]
add rcx, r9
mov eax, dword [rcx + r8*4]
add rax, r9
call rax
mov r8, rbp
mov rcx, qword [rdi]
lea rdx, [rdi + 0x5a]
mov rax, qword [rcx]
call qword [rax + 8]
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret