Function at 0x1400017d0
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x78
mov esi, ecx
mov r13, rdx
mov ecx, 0xd
call fcn.14000552c
mov qword [rsp + 0xc0], rax
mov rbp, rax
test rax, rax
je 0x140001874
lea r8, str.Load
mov r9, rax
sub r9, r8
nop dword [rax]
movzx ecx, byte [r8]
mov byte [r9 + r8], cl
lea r8, [r8 + 1]
test cl, cl
jne 0x140001810
lea rcx, [rax - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001824
mov eax, dword [str.Libr]
mov dword [rcx], eax
movzx eax, byte [0x140012400]
mov byte [rcx + 4], al
lea rcx, [rbp - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001844
mov eax, dword [0x1400123f8]
lea rdx, [rbp - 1]
mov dword [rcx], eax
nop word [rax + rax]
cmp byte [rdx + 1], 0
lea rdx, [rdx + 1]
jne 0x140001860
movzx eax, word [0x1400123f4]
mov word [rdx], ax
mov ecx, 0xd
call fcn.14000552c
mov rdi, rax
test rax, rax
je 0x140001908
lea rdx, str.kernel
mov r8, rax
sub r8, rdx
nop word [rax + rax]
movzx ecx, byte [rdx]
mov byte [r8 + rdx], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x1400018a0
lea rcx, [rax - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x1400018b3
movzx eax, word [0x140012414]
mov word [rcx], ax
movzx eax, byte [0x140012416]
mov byte [rcx + 2], al
lea rcx, [rdi - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x1400018d5
mov eax, dword [str..dll]
mov dword [rcx], eax
movzx eax, byte [0x140012410]
mov byte [rcx + 4], al
lea rcx, [rdi - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x1400018f5
movzx eax, byte [0x140012353]
mov byte [rcx], al
mov ecx, 0xf
call fcn.14000552c
mov rbx, rax
test rax, rax
je 0x1400019a2
lea rdx, [0x140012434]
mov r8, rax
sub r8, rdx
nop dword [rax + rax]
movzx ecx, byte [rdx]
mov byte [r8 + rdx], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x140001930
lea rcx, [rax - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001943
mov eax, dword [str.ProcA]
mov dword [rcx], eax
movzx eax, word [0x140012430]
mov word [rcx + 4], ax
lea rcx, [rbx - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001964
mov eax, dword [str.ddre]
mov dword [rcx], eax
movzx eax, byte [0x140012428]
mov byte [rcx + 4], al
lea rcx, [rbx - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001984
movzx eax, word [0x140012420]
mov word [rcx], ax
movzx eax, byte [0x140012422]
mov byte [rcx + 2], al
mov qword [rsp + 0xb0], r14
mov rcx, rdi
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rbx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r12, rax
test rax, rax
jne 0x1400019e9
xor ebx, ebx
mov rcx, qword [rsp + rbx*8 + 0x50]
call fcn.140005518
inc rbx
cmp rbx, 3
jl 0x1400019d1
jmp 0x140002023
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0xc8], rax
test rax, rax
jne 0x140001a1c
xor ebx, ebx
mov rcx, qword [rsp + rbx*8 + 0x50]
call fcn.140005518
inc rbx
cmp rbx, 3
jl 0x140001a04
jmp 0x140002023
mov ecx, 0xc
call fcn.14000552c
mov rbx, rax
test rax, rax
je 0x140001aa3
lea rdx, str.Open
mov r8, rax
sub r8, rdx
nop dword [rax + rax]
movzx ecx, byte [rdx]
mov byte [r8 + rdx], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x140001a40
lea rcx, [rax - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001a53
mov eax, dword [str.Proc]
mov dword [rcx], eax
movzx eax, byte [0x14001235c]
mov byte [rcx + 4], al
lea rcx, [rbx - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001a73
mov eax, dword [0x140012354]
mov dword [rcx], eax
lea rcx, [rbx - 1]
nop dword [rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001a90
movzx eax, byte [0x140012350]
mov byte [rcx], al
lea rcx, [0x140012368]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x140002009
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rbx
mov rdi, rax
call fcn.140005518
test rdi, rdi
je 0x140002009
mov r8d, esi
xor edx, edx
mov ecx, 0x438
call rdi
mov r14, rax
test rax, rax
je 0x140002009
mov rdi, 0xffffffffffffffff
mov rbx, rdi
nop dword [rax + rax]
cmp byte [rbx + r13 + 1], 0
lea rbx, [rbx + 1]
jne 0x140001b00
mov ecx, 0xf
call fcn.14000552c
mov rsi, rax
test rax, rax
je 0x140001b98
lea rcx, str.Virtual
mov rdx, rax
sub rdx, rcx
nop dword [rax + rax]
movzx eax, byte [rcx]
mov byte [rcx + rdx], al
lea rcx, [rcx + 1]
test al, al
jne 0x140001b30
lea rcx, [rsi - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001b42
mov eax, dword [str.Alloc]
mov dword [rcx], eax
movzx eax, word [0x140012380]
mov word [rcx + 4], ax
lea rcx, [rsi - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001b63
movzx eax, word [0x140012378]
mov word [rcx], ax
movzx eax, byte [0x14001237a]
mov byte [rcx + 2], al
lea rcx, [rsi - 1]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001b85
movzx eax, byte [0x140012351]
mov byte [rcx], al
lea rcx, [0x140012390]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x140001fe9
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rsi
mov rbp, rax
call fcn.140005518
test rbp, rbp
je 0x140001fe9
mov r9d, 0x2000
mov dword [rsp + 0x20], 1
lea r8, [rbx + 1]
xor edx, edx
mov rcx, r14
call rbp
test rax, rax
je 0x140001fe9
mov r9d, 0x1000
mov dword [rsp + 0x20], 4
lea r8, [rbx + 1]
mov rdx, rax
mov rcx, r14
call rbp
mov r15, rax
test rax, rax
je 0x140001fe9
nop word [rax + rax]
cmp byte [rdi + r13 + 1], 0
lea rdi, [rdi + 1]
jne 0x140001c20
mov ecx, 0x13
call fcn.14000552c
mov rsi, rax
test rax, rax
je 0x140001cc3
lea rcx, str.Write
mov rdx, rax
sub rdx, rcx
nop
movzx eax, byte [rcx]
mov byte [rcx + rdx], al
lea rcx, [rcx + 1]
test al, al
jne 0x140001c50
lea rax, [rsi - 1]
cmp byte [rax + 1], 0
lea rax, [rax + 1]
jne 0x140001c62
movsd xmm0, qword [str.Process]
lea rcx, [rsi - 1]
movsd qword [rax], xmm0
nop dword [rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001c80
mov eax, dword [str.Memory]
mov dword [rcx], eax
movzx eax, word [0x1400123a4]
mov word [rcx + 4], ax
movzx eax, byte [0x1400123a6]
mov byte [rcx + 6], al
lea rcx, [rsi - 1]
nop dword [rax + rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x140001cb0
movzx eax, byte [0x140012352]
mov byte [rcx], al
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
xor ebx, ebx
test rax, rax
je 0x140001fb6
mov rdx, rsi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rsi
mov rbp, rax
call fcn.140005518
test rbp, rbp
je 0x140001fb6
lea r9, [rdi + 1]
mov qword [rsp + 0x20], rbx
mov r8, r13
mov rdx, r15
mov rcx, r14
call rbp
test eax, eax
je 0x140001fb6
mov rdx, qword [rsp + 0xc0]
mov rcx, r12
call qword [rsp + 0xc8]
mov r12, rax
test rax, rax
jne 0x140001d68
mov r9d, 0x8000
xor r8d, r8d
mov rdx, r15
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rcx, qword [rsp + rbx*8 + 0x50]
call fcn.140005518
inc rbx
cmp rbx, 3
jl 0x140001d50
jmp 0x140002023
mov ecx, 0xa
call fcn.14000552c
mov rsi, rax
test rax, rax
je 0x140001dfd
lea rdx, [0x1400123d4]
mov r8, rax
sub r8, rdx
nop dword [rax + rax]
movzx ecx, byte [rdx]
mov byte [rdx + r8], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x140001d90
lea rcx, [rax - 1]
cmp byte [rcx + 1], bl
lea rcx, [rcx + 1]
jne 0x140001da3
movzx eax, word [0x1400123d0]
mov word [rcx], ax
movzx eax, byte [0x1400123d2]
mov byte [rcx + 2], al
lea rcx, [rsi - 1]
cmp byte [rcx + 1], bl
lea rcx, [rcx + 1]
jne 0x140001dc4
mov eax, dword [0x1400123cc]
mov dword [rcx], eax
lea rcx, [rsi - 1]
nop dword [rax]
cmp byte [rcx + 1], bl
lea rcx, [rcx + 1]
jne 0x140001de0
movzx eax, word [0x1400123c8]
mov word [rcx], ax
movzx eax, byte [0x1400123ca]
mov byte [rcx + 2], al
mov ecx, 0x14
call fcn.14000552c
mov rdi, rax
test rax, rax
je 0x140001ea6
lea rdx, [0x1400123f0]
mov r8, rax
sub r8, rdx
movzx ecx, byte [rdx]
mov byte [rdx + r8], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x140001e20
lea rcx, [rax - 1]
cmp byte [rcx + 1], bl
lea rcx, [rcx + 1]
jne 0x140001e33
mov eax, dword [str.Create]
mov dword [rcx], eax
movzx eax, word [0x1400123ec]
mov word [rcx + 4], ax
movzx eax, byte [0x1400123ee]
mov byte [rcx + 6], al
lea rcx, [rdi - 1]
nop dword [rax]
cmp byte [rcx + 1], bl
lea rcx, [rcx + 1]
jne 0x140001e60
mov eax, dword [str.User]
mov dword [rcx], eax
movzx eax, byte [0x1400123e4]
mov byte [rcx + 4], al
lea rcx, [rdi - 1]
nop
cmp byte [rcx + 1], bl
lea rcx, [rcx + 1]
jne 0x140001e80
mov eax, dword [str.Thread]
mov dword [rcx], eax
movzx eax, word [0x1400123dc]
mov word [rcx + 4], ax
movzx eax, byte [0x1400123de]
mov byte [rcx + 6], al
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rsi
mov rbp, rax
call fcn.140005518
test rbp, rbp
je 0x140001f83
mov rdx, rdi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rdi
mov rsi, rax
call fcn.140005518
test rsi, rsi
je 0x140001f83
mov qword [rsp + 0x48], rbx
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x40], rax
xor r9d, r9d
mov qword [rsp + 0x38], r15
xor r8d, r8d
mov qword [rsp + 0x30], r12
xor edx, edx
mov qword [rsp + 0x28], rbx
mov rcx, r14
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0xc0], rbx
call rsi
test eax, eax
mov rdi, rbx
cmove rdi, qword [rsp + 0xc0]
test rdi, rdi
je 0x140001f83
mov edx, 0xffffffff
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r9d, 0x8000
xor r8d, r8d
mov rdx, r15
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + rbx*8 + 0x50]
call fcn.140005518
inc rbx
cmp rbx, 3
jl 0x140001f66
mov eax, 1
jmp 0x140002025
mov r9d, 0x8000
xor r8d, r8d
mov rdx, r15
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + rbx*8 + 0x50]
call fcn.140005518
inc rbx
cmp rbx, 3
jl 0x140001fa1
jmp 0x140002023
mov r9d, 0x8000
xor r8d, r8d
mov rdx, r15
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + rbx*8 + 0x50]
call fcn.140005518
inc rbx
cmp rbx, 3
jl 0x140001fd4
jmp 0x140002023
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
mov rcx, qword [rsp + rbx*8 + 0x50]
call fcn.140005518
inc rbx
cmp rbx, 3
jl 0x140001ff4
jmp 0x140002023
xor ebx, ebx
nop dword [rax + rax]
mov rcx, qword [rsp + rbx*8 + 0x50]
call fcn.140005518
inc rbx
cmp rbx, 3
jl 0x140002010
xor eax, eax
mov r15, qword [rsp + 0x70]
mov r14, qword [rsp + 0xb0]
add rsp, 0x78
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret