Function at 0x180001a20
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x30
xor edi, edi
cmp qword [0x180023c90], rdi
jne 0x180001a75
lea rcx, [0x18001e1a0]
call fcn.180006530
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x180023c90], rax
test rbx, rbx
je 0x180001a75
mov r8d, dword [rbx - 8]
lea rcx, [rbx - 8]
add r8, 8
xor edx, edx
call fcn.180008180
lea rcx, [rbx - 8]
call fcn.180005370
cmp qword [0x180023c88], rdi
jne 0x180001ac5
lea rcx, [0x18001e1d0]
call fcn.1800063c0
mov rcx, qword [0x180023c90]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180023c88], rax
test rbx, rbx
je 0x180001ac5
mov r8d, dword [rbx - 8]
lea rcx, [rbx - 8]
add r8, 8
xor edx, edx
call fcn.180008180
lea rcx, [rbx - 8]
call fcn.180005370
cmp qword [0x180023cb8], rdi
jne 0x180001b15
lea rcx, [0x18001e1f0]
call fcn.1800063c0
mov rcx, qword [0x180023c90]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180023cb8], rax
test rbx, rbx
je 0x180001b15
mov r8d, dword [rbx - 8]
lea rcx, [rbx - 8]
add r8, 8
xor edx, edx
call fcn.180008180
lea rcx, [rbx - 8]
call fcn.180005370
cmp qword [0x180023ca8], rdi
jne 0x180001b5e
lea rcx, [0x18001e210]
call fcn.180006530
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x180023ca8], rax
test rbx, rbx
je 0x180001b5e
mov r8d, dword [rbx - 8]
lea rcx, [rbx - 8]
add r8, 8
xor edx, edx
call fcn.180008180
lea rcx, [rbx - 8]
call fcn.180005370
cmp qword [0x180023cc0], rdi
jne 0x180001bae
lea rcx, [0x18001e240]
call fcn.1800063c0
mov rcx, qword [0x180023ca8]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180023cc0], rax
test rbx, rbx
je 0x180001bae
mov r8d, dword [rbx - 8]
lea rcx, [rbx - 8]
add r8, 8
xor edx, edx
call fcn.180008180
lea rcx, [rbx - 8]
call fcn.180005370
cmp qword [0x180023c98], rdi
jne 0x180001bfe
lea rcx, [0x18001e260]
call fcn.1800063c0
mov rcx, qword [0x180023ca8]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180023c98], rax
test rbx, rbx
je 0x180001bfe
mov r8d, dword [rbx - 8]
lea rcx, [rbx - 8]
add r8, 8
xor edx, edx
call fcn.180008180
lea rcx, [rbx - 8]
call fcn.180005370
cmp qword [0x180023ca0], rdi
jne 0x180001c4e
lea rcx, [0x18001e280]
call fcn.1800063c0
mov rcx, qword [0x180023ca8]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180023ca0], rax
test rbx, rbx
je 0x180001c4e
mov r8d, dword [rbx - 8]
lea rcx, [rbx - 8]
add r8, 8
xor edx, edx
call fcn.180008180
lea rcx, [rbx - 8]
call fcn.180005370
cmp qword [0x180023cb0], rdi
jne 0x180001c9e
lea rcx, [0x18001e2a0]
call fcn.1800063c0
mov rcx, qword [0x180023ca8]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180023cb0], rax
test rbx, rbx
je 0x180001c9e
mov r8d, dword [rbx - 8]
lea rcx, [rbx - 8]
add r8, 8
xor edx, edx
call fcn.180008180
lea rcx, [rbx - 8]
call fcn.180005370
call qword [0x180023c88]
lea r8, [rsp + 0x48]
mov edx, 0x18
mov rcx, rax
call qword [0x180023cc0]
test eax, eax
je 0x180001d48
mov rcx, qword [rsp + 0x48]
lea rax, [rsp + 0x40]
xor r9d, r9d
mov dword [rsp + 0x40], edi
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0x19]
call qword [0x180023c98]
mov ecx, dword [rsp + 0x40]
call fcn.180005300
mov rbx, rax
test rax, rax
je 0x180001d3d
mov r9d, dword [rsp + 0x40]
lea rax, [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov r8, rbx
mov edx, 0x19
mov qword [rsp + 0x20], rax
call qword [0x180023c98]
test eax, eax
je 0x180001d35
mov rcx, qword [rbx]
call qword [0x180023ca0]
movzx ecx, byte [rax]
dec cl
movzx edx, cl
mov rcx, qword [rbx]
call qword [0x180023cb0]
mov edi, dword [rax]
mov rcx, rbx
call fcn.180005370
mov rcx, qword [rsp + 0x48]
call qword [0x180023cb8]
mov eax, edi
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret