Function at 0x140016ddc
Capabilities:
Encode data using xor
Link many functions at runtime

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
movups xmm0, xmmword [str.__W_NKHV]
lea r9, [rbp + 0x27]
movzx eax, word [0x14002f758]
movsd xmm1, qword [0x14002f750]
xor ebx, ebx
movups xmmword [rbp + 0x27], xmm0
mov r8d, ebx
mov word [rbp + 0x3f], ax
movsd qword [rbp + 0x37], xmm1
mov r14d, 0x4ec4ec4f
lea esi, [rbx + 1]
mov r15w, 0x33
mov eax, r14d
mul r8d
shr edx, 4
movzx eax, dx
imul ecx, eax, 0x34
movzx eax, r8w
add r8d, esi
sub ax, cx
add ax, r15w
xor word [r9], ax
lea r9, [r9 + 2]
cmp r8d, 0xd
jl 0x140016e35
lea rcx, [rbp + 0x27]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rdi, rax
test rax, rax
je 0x1400172d9
cmp byte [0x14002f573], bl
movsd xmm0, qword [str.MFG_gHOND_]
mov ecx, dword [0x14002f570]
movsd qword [rbp - 0x29], xmm0
mov dword [rbp - 0x21], ecx
je 0x140016ec1
mov r8d, ebx
lea r9, [rbp - 0x29]
mov eax, r14d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x34
mov al, r8b
add r8d, esi
sub al, cl
add al, r15b
xor byte [r9], al
add r9, rsi
cmp r8d, 0xc
jl 0x140016e9b
lea rdx, [rbp - 0x29]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp byte [0x14002f573], bl
mov r10, rax
movsd xmm0, qword [str.MFG_gHOND_]
mov ecx, dword [0x14002f570]
movsd qword [rbp - 0x11], xmm0
mov dword [rbp - 9], ecx
je 0x140016f1c
mov r8d, ebx
lea r9, [rbp - 0x11]
mov eax, r14d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x34
mov al, r8b
add r8d, esi
sub al, cl
add al, r15b
xor byte [r9], al
add r9, rsi
cmp r8d, 0xc
jl 0x140016ef6
lea rax, [rbp - 0x11]
mov qword [rbp + 0xf], r10
lea r8, [rbp + 7]
mov qword [rbp + 7], rax
lea rdx, [rbp + 0x17]
call fcn.1400273c8
movups xmm0, xmmword [0x14002e330]
mov al, byte [0x14002e340]
lea r9, [rbp - 0x11]
mov byte [rbp - 1], al
mov r8d, ebx
movups xmmword [rbp - 0x11], xmm0
mov eax, r14d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x34
mov al, r8b
add r8d, esi
sub al, cl
add al, r15b
xor byte [r9], al
add r9, rsi
cmp r8d, 0x11
jl 0x140016f50
lea rdx, [rbp - 0x11]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
movups xmm0, xmmword [0x14002e330]
mov cl, byte [0x14002e340]
lea r9, [rbp - 0x29]
mov r10, rax
mov byte [rbp - 0x19], cl
movups xmmword [rbp - 0x29], xmm0
mov r8d, ebx
mov eax, r14d
mul r8d
shr edx, 4
movsx ecx, dl
imul eax, ecx, 0x34
mov cl, r8b
add r8d, esi
sub cl, al
add cl, r15b
xor byte [r9], cl
add r9, rsi
cmp r8d, 0x11
jl 0x140016fa1
lea rax, [rbp - 0x29]
mov qword [rbp + 0xf], r10
lea r8, [rbp + 7]
mov qword [rbp + 7], rax
lea rdx, [rbp + 0x17]
call fcn.1400273c8
movzx eax, word [0x14002f5a8]
lea r9, [rbp - 0x11]
movups xmm0, xmmword [str.MFG_gK_ZPb_P.__0E]
mov word [rbp - 1], ax
mov r8d, ebx
mov al, byte [0x14002f5aa]
mov byte [rbp + 1], al
movups xmmword [rbp - 0x11], xmm0
mov eax, r14d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x34
mov al, r8b
add r8d, esi
sub al, cl
add al, r15b
xor byte [r9], al
add r9, rsi
cmp r8d, 0x13
jl 0x140017006
lea rdx, [rbp - 0x11]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
movzx ecx, word [0x14002f5a8]
lea r9, [rbp - 0x29]
movups xmm0, xmmword [str.MFG_gK_ZPb_P.__0E]
mov word [rbp - 0x19], cx
mov r10, rax
mov cl, byte [0x14002f5aa]
mov r8d, ebx
mov byte [rbp - 0x17], cl
movups xmmword [rbp - 0x29], xmm0
mov eax, r14d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x34
mov al, r8b
add r8d, esi
sub al, cl
add al, r15b
xor byte [r9], al
add r9, rsi
cmp r8d, 0x13
jl 0x140017062
lea rax, [rbp - 0x29]
mov qword [rbp + 0xf], r10
lea r8, [rbp + 7]
mov qword [rbp + 7], rax
lea rdx, [rbp + 0x17]
call fcn.1400273c8
cmp byte [0x14002e865], bl
mov eax, dword [0x14002e860]
movsd xmm0, qword [0x14002e858]
mov dword [rbp - 9], eax
movzx eax, word [0x14002e864]
mov word [rbp - 5], ax
movsd qword [rbp - 0x11], xmm0
je 0x1400170f7
mov r8d, ebx
lea r9, [rbp - 0x11]
mov eax, r14d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x34
mov al, r8b
add r8d, esi
sub al, cl
add al, r15b
xor byte [r9], al
add r9, rsi
cmp r8d, 0xe
jl 0x1400170d1
lea rdx, [rbp - 0x11]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp byte [0x14002e865], bl
mov r10, rax
mov ecx, dword [0x14002e860]
movsd xmm0, qword [0x14002e858]
mov dword [rbp - 0x21], ecx
movzx ecx, word [0x14002e864]
mov word [rbp - 0x1d], cx
movsd qword [rbp - 0x29], xmm0
je 0x14001715d
mov r8d, ebx
lea r9, [rbp - 0x29]
mov eax, r14d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x34
mov al, r8b
add r8d, esi
sub al, cl
add al, r15b
xor byte [r9], al
add r9, rsi
cmp r8d, 0xe
jl 0x140017137
lea rax, [rbp - 0x29]
mov qword [rbp + 0xf], r10
lea r8, [rbp + 7]
mov qword [rbp + 7], rax
lea rdx, [rbp + 0x17]
call fcn.1400273c8
movups xmm0, xmmword [str.MFG_gJ_WYJ__Bp__P_]
movdqu xmmword [rbp + 7], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x1400171bc
mov r8d, ebx
lea r9, [rbp + 7]
mov eax, r14d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x34
mov al, r8b
add r8d, esi
sub al, cl
add al, r15b
xor byte [r9], al
add r9, rsi
cmp r8d, 0x10
jl 0x140017196
lea rdx, [rbp + 7]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
movups xmm0, xmmword [str.MFG_gJ_WYJ__Bp__P_]
mov r10, rax
movdqu xmmword [rbp - 0x11], xmm0
psrldq xmm0, 0xf
movd ecx, xmm0
test cl, cl
je 0x140017212
mov r8d, ebx
lea r9, [rbp - 0x11]
mov eax, r14d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x34
mov al, r8b
add r8d, esi
sub al, cl
add al, r15b
xor byte [r9], al
add r9, rsi
cmp r8d, 0x10
jl 0x1400171ec
lea rax, [rbp - 0x11]
mov qword [rbp - 0x21], r10
lea r8, [rbp - 0x29]
mov qword [rbp - 0x29], rax
lea rdx, [rbp + 0x17]
call fcn.1400273c8
movups xmm0, xmmword [str.MFG_g__O_UaM_6BP_YYE]
movdqu xmmword [rbp + 7], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x140017271
mov r8d, ebx
lea r9, [rbp + 7]
mov eax, r14d
mul r8d
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x34
mov al, r8b
add r8d, esi
sub al, cl
add al, r15b
xor byte [r9], al
add r9, rsi
cmp r8d, 0x10
jl 0x14001724b
lea rdx, [rbp + 7]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
movups xmm0, xmmword [str.MFG_g__O_UaM_6BP_YYE]
mov r9, rax
movdqu xmmword [rbp - 0x11], xmm0
psrldq xmm0, 0xf
movd ecx, xmm0
test cl, cl
je 0x1400172c0
lea r8, [rbp - 0x11]
mov eax, r14d
mul ebx
shr edx, 4
movsx eax, dl
imul ecx, eax, 0x34
mov al, bl
add ebx, esi
sub al, cl
add al, r15b
xor byte [r8], al
add r8, rsi
cmp ebx, 0x10
jl 0x14001729e
lea rax, [rbp - 0x11]
mov qword [rbp - 0x21], r9
lea r8, [rbp - 0x29]
mov qword [rbp - 0x29], rax
lea rdx, [rbp + 0x17]
call fcn.1400273c8
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret