Function at 0x2c9912140
Capabilities:
Link many functions at runtime

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rbx, rcx
mov rbp, rdx
mov r12d, r8d
mov esi, r9d
cmp qword [0x2c99220f0], 0
je 0x2c9912416
cmp qword [0x2c99220e8], 0
je 0x2c9912442
cmp qword [0x2c99220e0], 0
je 0x2c9912475
cmp qword [0x2c99220d8], 0
je 0x2c99124a8
cmp qword [0x2c99220d0], 0
je 0x2c99124db
cmp qword [0x2c99220c8], 0
je 0x2c991250e
cmp qword [0x2c99220c0], 0
je 0x2c9912541
cmp qword [0x2c99220b8], 0
je 0x2c9912574
cmp qword [0x2c99220b0], 0
je 0x2c99125a7
mov dword [rsp + 0x20], 0
mov r9d, 0
mov r8d, 0
mov edx, 0
mov rcx, rbx
call qword [0x2c99220e8]
mov rdi, rax
test rax, rax
je 0x2c9912703
mov dword [rsp + 0x4c], 0xea60
lea rbx, [rsp + 0x4c]
mov r9d, 4
mov r8, rbx
mov edx, 2
mov rcx, rax
call qword [0x2c99220e0]
mov r9d, 4
mov r8, rbx
mov edx, 5
mov rcx, rdi
call qword [0x2c99220e0]
mov r9d, 4
mov r8, rbx
mov edx, 6
mov rcx, rdi
call qword [0x2c99220e0]
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], 0
mov r9d, 0
movzx r8d, r12w
mov rdx, rbp
mov rcx, rdi
call qword [0x2c99220d0]
mov r13, rax
mov rbx, rax
test rax, rax
je 0x2c99126d7
cmp dword [rsp + 0xe8], 1
sbb ebx, ebx
and ebx, 0xff800000
sub ebx, 0x7f380000
cmp esi, 2
je 0x2c99125da
lea rcx, [0x2c991e4bd]
call fcn.2c9915bf5
mov rsi, rax
mov dword [rsp + 0xd8], 0
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, 0
mov r8, qword [rsp + 0xc0]
mov rdx, rsi
mov rcx, r13
call qword [0x2c99220c8]
mov rbp, rax
mov rcx, rsi
call fcn.2c9915c7c
mov rbx, rbp
test rbp, rbp
je 0x2c99126ce
cmp qword [rsp + 0xc8], 0
je 0x2c99123a8
lea rcx, [0x2c991e4dd]
call fcn.2c9915bf5
mov rsi, rax
mov rcx, rax
call sub.msvcrt.dll_wcslen
mov rbx, rax
mov rcx, qword [rsp + 0xc8]
call sub.msvcrt.dll_wcslen
lea rcx, [rbx + rax + 1]
add rcx, rcx
call fcn.2c9914d40
mov rbx, rax
test rax, rax
je 0x2c9912398
mov rdx, rsi
mov rcx, rax
call sub.msvcrt.dll_wcscpy
mov rdx, qword [rsp + 0xc8]
mov rcx, rbx
call sub.msvcrt.dll_wcscat
mov rcx, rsi
call fcn.2c9915c7c
mov qword [rsp + 0xc8], rbx
mov ecx, 0
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0xd0]
mov r8d, 0
mov rdx, qword [rsp + 0xc8]
mov rcx, rbp
call qword [0x2c99220c0]
cmp dword [rsp + 0xe8], 0
jne 0x2c99125ee
mov ecx, 0x1000
call fcn.2c9914d40
mov rbx, rax
mov esi, 0
mov r12d, 0
lea r14, [rsp + 0x40]
test rax, rax
jne 0x2c9912692
jmp 0x2c99126c5
lea rcx, [0x2c991e3d0]
call fcn.2c9915bf5
mov rdi, rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x2c99220f0], rax
mov rcx, rdi
call fcn.2c9915c7c
jmp 0x2c991216a
lea rcx, [0x2c991e3ef]
call fcn.2c9915b70
mov rdi, rax
mov rdx, rax
mov rcx, qword [0x2c99220f0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x2c99220e8], rax
mov rcx, rdi
call fcn.2c9915c7c
jmp 0x2c9912178
lea rcx, [0x2c991e405]
call fcn.2c9915b70
mov rdi, rax
mov rdx, rax
mov rcx, qword [0x2c99220f0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x2c99220e0], rax
mov rcx, rdi
call fcn.2c9915c7c
jmp 0x2c9912186
lea rcx, [0x2c991e420]
call fcn.2c9915b70
mov rdi, rax
mov rdx, rax
mov rcx, qword [0x2c99220f0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x2c99220d8], rax
mov rcx, rdi
call fcn.2c9915c7c
jmp 0x2c9912194
lea rcx, [0x2c991e43d]
call fcn.2c9915b70
mov rdi, rax
mov rdx, rax
mov rcx, qword [0x2c99220f0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x2c99220d0], rax
mov rcx, rdi
call fcn.2c9915c7c
jmp 0x2c99121a2
lea rcx, [0x2c991e456]
call fcn.2c9915b70
mov rdi, rax
mov rdx, rax
mov rcx, qword [0x2c99220f0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x2c99220c8], rax
mov rcx, rdi
call fcn.2c9915c7c
jmp 0x2c99121b0
lea rcx, [0x2c991e46f]
call fcn.2c9915b70
mov rdi, rax
mov rdx, rax
mov rcx, qword [0x2c99220f0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x2c99220c0], rax
mov rcx, rdi
call fcn.2c9915c7c
jmp 0x2c99121be
lea rcx, [0x2c991e488]
call fcn.2c9915b70
mov rdi, rax
mov rdx, rax
mov rcx, qword [0x2c99220f0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x2c99220b8], rax
mov rcx, rdi
call fcn.2c9915c7c
jmp 0x2c99121cc
lea rcx, [0x2c991e4a1]
call fcn.2c9915b70
mov rdi, rax
mov rdx, rax
mov rcx, qword [0x2c99220f0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x2c99220b0], rax
mov rcx, rdi
call fcn.2c9915c7c
jmp 0x2c99121da
lea rcx, [0x2c991e4cc]
call fcn.2c9915bf5
mov rsi, rax
jmp 0x2c99122e6
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x2f0d
je 0x2c9912606
cmp eax, 0x2f19
jne 0x2c99123eb
mov dword [rsp + 0x44], 4
lea rbx, [rsp + 0x48]
lea r9, [rsp + 0x44]
mov r8, rbx
mov edx, 0x1f
mov rcx, rbp
call qword [0x2c99220d8]
or dword [rsp + 0x48], 0x3180
mov r9d, 4
mov r8, rbx
mov edx, 0x1f
mov rcx, rbp
call qword [0x2c99220e0]
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0xd0]
mov r8d, 0
mov edx, 0
mov rcx, rbp
call qword [0x2c99220c0]
jmp 0x2c99123eb
add r12d, eax
lea r15d, [rsi + 0x1000]
lea edx, [rsi + 0x2000]
mov rcx, rbx
call fcn.2c9914d65
mov rbx, rax
mov esi, r15d
mov edx, esi
add rdx, rbx
mov r9, r14
mov r8d, 0x1000
mov rcx, rbp
call qword [0x2c99220b8]
test eax, eax
je 0x2c99126b5
mov eax, dword [rsp + 0x40]
test eax, eax
jne 0x2c9912674
test r12d, r12d
je 0x2c99126f4
mov rax, qword [rsp + 0xe0]
mov dword [rax], r12d
mov rcx, rbp
call qword [0x2c99220b0]
mov rcx, r13
call qword [0x2c99220b0]
mov rcx, rdi
call qword [0x2c99220b0]
mov rax, rbx
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
call fcn.2c9914d92
mov ebx, 0
jmp 0x2c99126c5
mov rbx, rax
jmp 0x2c99126e0