Function at 0x14011c1e0
Capabilities:
Create thread
Link many functions at runtime

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x168
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov ecx, 0x2710
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rdx, [0x14015beb0]
lea rcx, [rsp + 0x1a8]
call fcn.14010a000
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbx, rax
mov rdx, qword [rsp + 0x1a8]
add rdx, 0xffffffffffffffe8
or edi, 0xffffffff
mov ecx, edi
lock xadd dword [rdx + 0x10], ecx
lea rbp, vtable.ATL::CAtlStringMgr.0
sub ecx, 1
jg 0x14011c26c
mov rax, qword [rdx]
mov rcx, qword [rax]
mov r8, qword [rcx + 8]
cmp rcx, rbp
jne 0x14011c266
mov rcx, qword [rax + 8]
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14011c26c
mov rcx, rax
call r8
test rbx, rbx
je 0x14011c375
lea rdx, [0x14015bed0]
lea rcx, [rsp + 0x30]
call fcn.14010a000
mov rdx, qword [rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140181598], rax
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14011c2d5
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rbp
jne 0x14011c2d2
mov rcx, qword [rcx + 8]
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14011c2d5
call r8
lea rdx, [0x14015bef0]
lea rcx, [rsp + 0x38]
call fcn.14010a000
mov rdx, qword [rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140181590], rax
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14011c335
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rbp
jne 0x14011c332
mov rcx, qword [rcx + 8]
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14011c335
call r8
lea rdx, [0x14015bf10]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x14015bf28]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x14015bf38]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x14015bf48]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
call fcn.140118e70
call fcn.1400177e0
lea rdx, [0x14015bbe0]
lea rcx, [rsp + 0x1a0]
call fcn.14010a000
nop
mov rcx, qword [rsp + 0x1a0]
cmp dword [rcx - 8], 1
jle 0x14011c3ba
mov edx, dword [rcx - 0x10]
lea rcx, [rsp + 0x1a0]
call fcn.14001fab0
mov rcx, qword [rsp + 0x1a0]
call fcn.1400181b0
mov rcx, qword [rsp + 0x1a0]
movsxd rdx, dword [rcx - 0xc]
call fcn.1400a8844
test eax, eax
js 0x14011c4e3
mov rcx, qword [rsp + 0x1a0]
cmp eax, dword [rcx - 0xc]
jg 0x14011c4e3
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rsp + 0x1a0]
mov byte [rcx + rax], 0
xor esi, esi
mov dword [rsp + 0x190], esi
xor edx, edx
mov r8d, 0x104
lea rcx, [rsp + 0x50]
call fcn.14009c0b0
mov r8d, 0x104
lea rdx, [rsp + 0x50]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x14011c44a
mov dword [rsp + 0x20], esi
lea r9d, [rsi + 0x10]
xor r8d, r8d
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x190]
call fcn.1400b6bcc
mov dword [rsp + 0x198], esi
mov ebx, esi
cmp qword [0x1401815d0], rsi
jne 0x14011c49f
lea rax, [rsp + 0x198]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
xor r9d, r9d
lea r8, [0x140116c80]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x1401815d0], rax
test rax, rax
jne 0x14011c49f
mov ecx, 0xbb8
call qword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
cmp ebx, 3
jl 0x14011c453
mov rdx, qword [rsp + 0x1a0]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x14011c4dc
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov r8, qword [rax + 8]
cmp rax, rbp
jne 0x14011c4d9
mov rcx, qword [rcx + 8]
mov r8, rdx
xor edx, edx
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14011c4dc
call r8
mov eax, 1
jmp 0x14011c4ee
mov ecx, 0x80070057
call fcn.14001fe40
nop
add rsp, 0x168
pop rdi
pop rsi
pop rbp
pop rbx
ret