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

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rsi
mov qword [r11 + 0x18], rdi
push r14
sub rsp, 0x1a0
mov rax, qword [0x14012a098]
xor rax, rsp
mov qword [rsp + 0x190], rax
mov dword [r11 - 0x28], 0x8b9686a9
mov dword [r11 - 0x24], 0xdbdb8b83
mov dword [r11 - 0x20], 0x81808fc4
xor eax, eax
mov byte [r11 - 0x1c], al
xor r14d, r14d
mov ecx, r14d
mov edx, r14d
lea eax, [rcx - 0x1e]
xor byte [rsp + rdx + 0x180], al
inc ecx
movsxd rdx, ecx
cmp rdx, 0xc
jb 0x1400520a1
mov byte [rsp + 0x18c], r14b
lea rcx, [rsp + 0x180]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdi, rax
test rax, rax
jne 0x1400520ee
lea rcx, [rsp + 0x180]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
je 0x140052b2d
movdqa xmm0, xmmword [0x140116390]
movdqu xmmword [rsp + 0x130], xmm0
mov word [rsp + 0x140], 0x8b
mov ecx, r14d
mov rdx, r14
nop
lea eax, [rcx - 0x1e]
xor byte [rsp + rdx + 0x130], al
inc ecx
movsxd rdx, ecx
cmp rdx, 0x11
jb 0x140052110
mov byte [rsp + 0x141], r14b
mov qword [rsp + 0x150], r14
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x168], reloc.OLEAUT32.dll_SafeArrayDestroy
lea rax, [rsp + 0x130]
mov rbx, 0xffffffffffffffff
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140052160
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x150]
call fcn.140015ff0
lea rdx, [rsp + 0x150]
cmp qword [rsp + 0x168], 0x10
cmovae rdx, qword [rsp + 0x150]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14013e6b8], rax
test rax, rax
sete sil
mov rdx, qword [rsp + 0x168]
cmp rdx, 0x10
jb 0x1400521f3
inc rdx
mov rcx, qword [rsp + 0x150]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400521ee
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052b4f
call fcn.1400998c0
test sil, sil
jne 0x140052b55
movdqa xmm0, xmmword [0x1401163d0]
movdqu xmmword [rsp + 0x130], xmm0
mov word [rsp + 0x140], 0x8a80
xor eax, eax
mov byte [rsp + 0x142], al
mov ecx, r14d
mov rdx, r14
nop word [rax + rax]
lea eax, [rcx - 0x1e]
xor byte [rsp + rdx + 0x130], al
inc ecx
movsxd rdx, ecx
cmp rdx, 0x12
jb 0x140052230
mov byte [rsp + 0x142], 0
mov qword [rsp + 0x150], r14
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x168], reloc.OLEAUT32.dll_SafeArrayDestroy
lea rax, [rsp + 0x130]
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x140052274
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x150]
call fcn.140015ff0
lea rdx, [rsp + 0x150]
cmp qword [rsp + 0x168], 0x10
cmovae rdx, qword [rsp + 0x150]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14013e6c0], rax
test rax, rax
sete sil
mov rdx, qword [rsp + 0x168]
cmp rdx, 0x10
jb 0x140052307
inc rdx
mov rcx, qword [rsp + 0x150]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140052302
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052b77
call fcn.1400998c0
test sil, sil
jne 0x140052b7d
movdqa xmm0, xmmword [0x1401163b0]
movdqu xmmword [rsp + 0x130], xmm0
mov word [rsp + 0x140], 0x9793
xor eax, eax
mov byte [rsp + 0x142], al
mov ecx, r14d
mov rdx, r14
nop word [rax + rax]
lea eax, [rcx - 0x1e]
xor byte [rsp + rdx + 0x130], al
inc ecx
movsxd rdx, ecx
cmp rdx, 0x12
jb 0x140052340
mov byte [rsp + 0x142], 0
mov qword [rsp + 0x150], r14
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x168], reloc.OLEAUT32.dll_SafeArrayDestroy
lea rax, [rsp + 0x130]
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x140052384
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x150]
call fcn.140015ff0
lea rdx, [rsp + 0x150]
cmp qword [rsp + 0x168], 0x10
cmovae rdx, qword [rsp + 0x150]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14013e6c8], rax
test rax, rax
sete sil
mov rdx, qword [rsp + 0x168]
cmp rdx, 0x10
jb 0x140052417
inc rdx
mov rcx, qword [rsp + 0x150]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140052412
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052b9f
call fcn.1400998c0
test sil, sil
jne 0x140052ba5
mov dword [rsp + 0x130], 0x91968ab4
mov dword [rsp + 0x134], 0xa8848693
mov dword [rsp + 0x138], 0x8e838786
mov word [rsp + 0x13c], 0x97ab
xor eax, eax
mov byte [rsp + 0x13e], al
mov ecx, r14d
mov rdx, r14
nop word [rax + rax]
lea eax, [rcx - 0x1e]
xor byte [rsp + rdx + 0x130], al
inc ecx
movsxd rdx, ecx
cmp rdx, 0xe
jb 0x140052460
mov byte [rsp + 0x13e], 0
mov qword [rsp + 0x150], r14
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x168], reloc.OLEAUT32.dll_SafeArrayDestroy
lea rax, [rsp + 0x130]
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x1400524a4
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x150]
call fcn.140015ff0
lea rdx, [rsp + 0x150]
cmp qword [rsp + 0x168], 0x10
cmovae rdx, qword [rsp + 0x150]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14013e6d0], rax
test rax, rax
sete sil
mov rdx, qword [rsp + 0x168]
cmp rdx, 0x10
jb 0x140052537
inc rdx
mov rcx, qword [rsp + 0x150]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140052532
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052bc7
call fcn.1400998c0
test sil, sil
jne 0x140052bcd
mov dword [rsp + 0x130], 0x91968ab4
mov dword [rsp + 0x134], 0xaf848693
mov dword [rsp + 0x138], 0xa8898e98
mov word [rsp + 0x13c], 0x96
mov ecx, r14d
mov rdx, r14
lea eax, [rcx - 0x1e]
xor byte [rsp + rdx + 0x130], al
inc ecx
movsxd rdx, ecx
cmp rdx, 0xd
jb 0x140052571
mov byte [rsp + 0x13d], 0
mov qword [rsp + 0x150], r14
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x168], reloc.OLEAUT32.dll_SafeArrayDestroy
lea rax, [rsp + 0x130]
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x1400525b5
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x150]
call fcn.140015ff0
lea rdx, [rsp + 0x150]
cmp qword [rsp + 0x168], 0x10
cmovae rdx, qword [rsp + 0x150]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14013e6d8], rax
test rax, rax
sete sil
mov rdx, qword [rsp + 0x168]
cmp rdx, 0x10
jb 0x140052648
inc rdx
mov rcx, qword [rsp + 0x150]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140052643
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052bf5
call fcn.1400998c0
test sil, sil
jne 0x140052bfb
mov dword [rsp + 0x130], 0x91968ab4
mov dword [rsp + 0x134], 0xb8848693
mov dword [rsp + 0x138], 0x949e8e9f
mov word [rsp + 0x13c], 0x97ab
xor eax, eax
mov byte [rsp + 0x13e], al
mov ecx, r14d
mov rdx, r14
nop dword [rax + rax]
lea eax, [rcx - 0x1e]
xor byte [rsp + rdx + 0x130], al
inc ecx
movsxd rdx, ecx
cmp rdx, 0xe
jb 0x140052690
mov byte [rsp + 0x13e], 0
mov qword [rsp + 0x150], r14
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x168], reloc.OLEAUT32.dll_SafeArrayDestroy
lea rax, [rsp + 0x130]
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x1400526d4
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x150]
call fcn.140015ff0
lea rdx, [rsp + 0x150]
cmp qword [rsp + 0x168], 0x10
cmovae rdx, qword [rsp + 0x150]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14013e6e0], rax
test rax, rax
sete sil
mov rdx, qword [rsp + 0x168]
cmp rdx, 0x10
jb 0x140052767
inc rdx
mov rcx, qword [rsp + 0x150]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140052762
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052c23
call fcn.1400998c0
test sil, sil
jne 0x140052c29
movdqa xmm0, xmmword [0x1401163a0]
movdqu xmmword [rsp + 0x130], xmm0
xor eax, eax
mov byte [rsp + 0x140], al
mov ecx, r14d
mov rdx, r14
lea eax, [rcx - 0x1e]
xor byte [rsp + rdx + 0x130], al
inc ecx
movsxd rdx, ecx
cmp rdx, 0x10
jb 0x140052790
mov byte [rsp + 0x140], 0
mov qword [rsp + 0x150], r14
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x168], reloc.OLEAUT32.dll_SafeArrayDestroy
lea rax, [rsp + 0x130]
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x1400527d4
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x150]
call fcn.140015ff0
lea rdx, [rsp + 0x150]
cmp qword [rsp + 0x168], 0x10
cmovae rdx, qword [rsp + 0x150]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14013e718], rax
test rax, rax
sete dil
mov rdx, qword [rsp + 0x168]
cmp rdx, 0x10
jb 0x140052867
inc rdx
mov rcx, qword [rsp + 0x150]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140052862
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052c51
call fcn.1400998c0
test dil, dil
jne 0x140052c57
mov dword [rsp + 0x170], 0x978190b7
mov dword [rsp + 0x174], 0x8dc6d5d5
mov word [rsp + 0x178], 0x8786
xor eax, eax
mov byte [rsp + 0x17a], al
mov ecx, r14d
mov rdx, r14
nop
lea eax, [rcx - 0x1e]
xor byte [rsp + rdx + 0x170], al
inc ecx
movsxd rdx, ecx
cmp rdx, 0xa
jb 0x1400528a0
mov byte [rsp + 0x17a], 0
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdi, rax
test rax, rax
jne 0x1400528ed
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
je 0x140052c7f
mov dword [rsp + 0x130], 0x818a8aa4
mov dword [rsp + 0x134], 0x8d868eb1
mov dword [rsp + 0x138], 0xbb9c85
mov ecx, r14d
mov rdx, r14
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx - 0x1e]
xor byte [rsp + rdx + 0x130], al
inc ecx
movsxd rdx, ecx
cmp rdx, 0xb
jb 0x140052920
mov byte [rsp + 0x13b], 0
mov qword [rsp + 0x150], r14
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x168], reloc.OLEAUT32.dll_SafeArrayDestroy
lea rax, [rsp + 0x130]
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x140052964
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x150]
call fcn.140015ff0
lea rdx, [rsp + 0x150]
cmp qword [rsp + 0x168], 0x10
cmovae rdx, qword [rsp + 0x150]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14013e780], rax
test rax, rax
sete sil
mov rdx, qword [rsp + 0x168]
cmp rdx, 0x10
jb 0x1400529f7
inc rdx
mov rcx, qword [rsp + 0x150]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400529f2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052ca7
call fcn.1400998c0
test sil, sil
jne 0x140052cad
lea rdx, str.GetAsyncKeyState
lea rcx, [rsp + 0x130]
call fcn.1400592c0
mov ecx, r14d
mov rdx, r14
nop word [rax + rax]
lea eax, [rcx - 0x1e]
xor byte [rsp + rdx + 0x130], al
inc ecx
movsxd rdx, ecx
cmp rdx, 0x10
jb 0x140052a20
mov byte [rsp + 0x140], 0
mov qword [rsp + 0x150], r14
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x168], reloc.OLEAUT32.dll_SafeArrayDestroy
lea rax, [rsp + 0x130]
inc rbx
cmp byte [rax + rbx], 0
jne 0x140052a61
mov r8, rbx
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x150]
call fcn.140015ff0
lea rdx, [rsp + 0x150]
cmp qword [rsp + 0x168], 0x10
cmovae rdx, qword [rsp + 0x150]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14013e788], rax
test rax, rax
sete bl
mov rdx, qword [rsp + 0x168]
cmp rdx, 0x10
jb 0x140052af5
inc rdx
mov rcx, qword [rsp + 0x150]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140052af0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140052cd5
call fcn.1400998c0
test bl, bl
jne 0x140052cdb
mov al, 1
jmp 0x140052b03
mov rcx, qword [rsp + 0x190]
xor rcx, rsp
call fcn.1400998a0
lea r11, [rsp + 0x1a0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop r14
ret
lea rdx, str.dll_1__not_found.
lea rcx, [rsp + 0x28]
call fcn.140002110
lea rdx, [0x140128d58]
lea rcx, [rsp + 0x28]
call fcn.14009c580
call fcn.1400a03a4
int3
lea rdx, str.Cannot_find_function_2.
lea rcx, [rsp + 0x40]
call fcn.140002110
lea rdx, [0x140128d58]
lea rcx, [rsp + 0x40]
call fcn.14009c580
call fcn.1400a03a4
int3
lea rdx, str.Cannot_find_function_3.
lea rcx, [rsp + 0x58]
call fcn.140002110
lea rdx, [0x140128d58]
lea rcx, [rsp + 0x58]
call fcn.14009c580
call fcn.1400a03a4
int3
lea rdx, str.Cannot_find_function_4.
lea rcx, [rsp + 0x70]
call fcn.140002110
lea rdx, [0x140128d58]
lea rcx, [rsp + 0x70]
call fcn.14009c580
call fcn.1400a03a4
int3
lea rdx, str.Cannot_find_function_5.
lea rcx, [rsp + 0x88]
call fcn.140002110
lea rdx, [0x140128d58]
lea rcx, [rsp + 0x88]
call fcn.14009c580
call fcn.1400a03a4
int3
lea rdx, str.Cannot_find_function_6.
lea rcx, [rsp + 0xa0]
call fcn.140002110
lea rdx, [0x140128d58]
lea rcx, [rsp + 0xa0]
call fcn.14009c580
call fcn.1400a03a4
int3
lea rdx, str.Cannot_find_function_7.
lea rcx, [rsp + 0xb8]
call fcn.140002110
lea rdx, [0x140128d58]
lea rcx, [rsp + 0xb8]
call fcn.14009c580
call fcn.1400a03a4
int3
lea rdx, str.Cannot_find_function_14.
lea rcx, [rsp + 0xd0]
call fcn.140002110
lea rdx, [0x140128d58]
lea rcx, [rsp + 0xd0]
call fcn.14009c580
lea rdx, str.dll_3__not_found.
lea rcx, [rsp + 0xe8]
call fcn.140002110
lea rdx, [0x140128d58]
lea rcx, [rsp + 0xe8]
call fcn.14009c580
call fcn.1400a03a4
int3
lea rdx, str.Cannot_find_function_b1.
lea rcx, [rsp + 0x100]
call fcn.140002110
lea rdx, [0x140128d58]
lea rcx, [rsp + 0x100]
call fcn.14009c580
call fcn.1400a03a4
int3
lea rdx, str.Cannot_find_function_b2.
lea rcx, [rsp + 0x118]
call fcn.140002110
lea rdx, [0x140128d58]
lea rcx, [rsp + 0x118]
call fcn.14009c580
int3