Function at 0x100031bf4
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x310
mov rax, qword [0x10003d110]
xor rax, rsp
mov qword [rsp + 0x300], rax
mov rbx, rcx
lea rcx, [rsp + 0x60]
mov r15, r8
mov dword [rsp + 0x80], edx
call fcn.10002fbf0
mov rcx, qword [0x10003daf8]
lea r14, [0x10003daf8]
cmp rcx, r14
je 0x100031c68
test byte [rcx + 0x3c], 1
je 0x100031c68
cmp byte [rcx + 0x39], 7
jb 0x100031c68
mov rcx, qword [rcx + 0x30]
lea r8, [0x100023188]
mov edx, 0x11
call fcn.100030b94
xor r12d, r12d
mov rcx, rbx
mov dword [r15], r12d
call fcn.100033554
lea ebp, [r12 + 2]
lea esi, [rbp + 2]
mov rcx, rbx
cmp eax, esi
jne 0x100031d29
lea r8, [rsp + 0x60]
xor edx, edx
call fcn.100033340
mov r9, qword [rsp + 0x60]
cmp eax, r12d
mov ebx, eax
jl 0x100031d3a
cmp r9, r12
je 0x100031cba
mov rcx, r9
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r9, qword [rsp + 0x60]
jmp 0x100031cbd
mov eax, r12d
cmp eax, 3
jl 0x100031d22
mov r13d, 0x5c
cmp word [r9], r13w
jne 0x100031d22
cmp word [r9 + 2], r13w
jne 0x100031d22
mov edi, ebp
cmp r9, r12
je 0x100031cec
mov rcx, r9
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r9, qword [rsp + 0x60]
jmp 0x100031cef
mov eax, r12d
cmp edi, eax
jg 0x100031d3a
cmp r13w, word [rsi + r9]
je 0x100031d01
inc edi
add rsi, rbp
jmp 0x100031cd7
movsxd rax, edi
lea rcx, [rsp + 0x60]
or r8d, 0xffffffff
mov word [r9 + rax*2], r12w
mov rdx, qword [rsp + 0x60]
add rdx, 4
call fcn.10002fd60
jmp 0x100031d33
mov ebx, 0x80070057
jmp 0x100031d3a
lea rdx, [rsp + 0x60]
call fcn.1000339d4
mov r9, qword [rsp + 0x60]
mov ebx, eax
mov rcx, qword [0x10003daf8]
cmp rcx, r14
je 0x100031d6e
test byte [rcx + 0x3c], 1
je 0x100031d6e
cmp byte [rcx + 0x39], 7
jb 0x100031d6e
mov rcx, qword [rcx + 0x30]
lea r8, [0x100023188]
mov edx, 0x12
call fcn.100030cf8
mov rcx, qword [0x10003daf8]
cmp ebx, r12d
jl 0x100032348
lea rcx, [0x100024300]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
cmp rax, r12
je 0x10003232c
lea rdx, [0x100024320]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x100024330]
mov rcx, rsi
mov rdi, rax
mov qword [rsp + 0x78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x100024340]
mov rcx, rsi
mov r14, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x100024350]
mov rcx, rsi
mov r13, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x100024360]
mov rcx, rsi
mov rbx, rax
mov qword [rsp + 0x278], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x100024370]
mov rcx, rsi
mov rbp, rax
mov qword [rsp + 0x270], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x90], rax
cmp rdi, r12
je 0x100032305
cmp r13, r12
je 0x100032305
cmp rbx, r12
je 0x100032305
cmp r14, r12
je 0x100031e4b
cmp rbp, r12
je 0x100031e4b
mov ebx, 1
cmp rax, r12
jne 0x100031e4e
mov ebx, r12d
lea rcx, [0x100024388]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rbp, rax
cmp rax, r12
je 0x100032305
lea rdx, [0x1000243a0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1000243b0]
mov rcx, rbp
mov r12, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1000243c0]
mov rcx, rbp
mov qword [rsp + 0x88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [0x1000243d0]
mov rcx, rbp
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor ecx, ecx
mov qword [rsp + 0x98], rax
cmp r12, rcx
je 0x1000322e2
cmp qword [rsp + 0x88], rcx
je 0x1000322e2
cmp rdi, rcx
je 0x1000322e2
cmp rax, rcx
je 0x1000322e2
mov word [rsp + 0xd0], cx
lea rcx, [rsp + 0xd2]
xor edx, edx
mov r8d, 0x196
call sub.msvcrt.dll_memset
lea rdx, [rsp + 0xd0]
mov ecx, 0x202
call r12
xor r12d, r12d
cmp eax, r12d
jne 0x1000322d4
lea r8d, [r12 + 0x30]
lea rcx, [rsp + 0xa0]
xor edx, edx
mov qword [rsp + 0x70], r12
call sub.msvcrt.dll_memset
mov r11d, dword [rsp + 0xa4]
mov rcx, qword [rsp + 0x60]
lea eax, [r12 + 2]
cmp ebx, r12d
cmove r11d, eax
lea r9, [rsp + 0x70]
lea r8, [rsp + 0xa0]
xor edx, edx
mov dword [rsp + 0xa4], r11d
call rdi
cmp eax, r12d
jne 0x10003227c
mov rax, qword [rsp + 0x70]
mov ecx, dword [rax + 4]
lea eax, [r12 + 2]
cmp ecx, eax
jne 0x1000320be
call qword [rsp + 0x78]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x100032064
mov rcx, qword [rsp + 0x70]
lea r9d, [r12 + 8]
mov r12d, dword [rsp + 0x80]
mov rdx, qword [rcx + 0x20]
mov dword [rsp + 0x38], r12d
lea rax, [rsp + 0x280]
mov edx, dword [rdx + 4]
mov dword [rsp + 0x30], 0x30
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x270]
xor r14d, r14d
mov rcx, rdi
mov qword [rsp + 0x20], r14
call qword [rsp + 0x278]
cmp eax, r14d
je 0x100031ff2
mov ebx, r14d
jmp 0x100032059
mov dword [r15], 1
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
cmp eax, r14d
cmovle ebx, eax
cmp ebx, r14d
jge 0x100032059
mov rcx, qword [0x10003daf8]
lea rdx, [0x10003daf8]
cmp rcx, rdx
je 0x100032059
test byte [rcx + 0x3c], 1
je 0x100032059
cmp byte [rcx + 0x39], 2
jb 0x100032059
mov edx, 0x13
mov r9, qword [rsp + 0x60]
mov rcx, qword [rcx + 0x30]
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], eax
lea r8, [0x100023188]
mov dword [rsp + 0x20], r12d
call fcn.100030d80
mov rcx, rdi
call r13
jmp 0x10003226e
mov dword [r15], 1
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
cmp eax, r12d
cmovle ebx, eax
cmp ebx, r12d
jge 0x10003226e
mov rcx, qword [0x10003daf8]
lea rdx, [0x10003daf8]
cmp rcx, rdx
je 0x10003226e
test byte [rcx + 0x3c], 1
je 0x10003226e
cmp byte [rcx + 0x39], 2
jb 0x10003226e
mov edx, 0x14
jmp 0x10003224a
mov eax, 0x17
cmp ecx, eax
jne 0x100032269
cmp ebx, r12d
je 0x100032269
call r14
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x10003220c
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x78], r12d
lea rdx, [rsp + 0x78]
mov rcx, qword [rcx + 0x20]
call qword [rsp + 0x90]
mov ebx, dword [rsp + 0x78]
lea rcx, [rsp + 0x280]
cmp eax, r12d
cmovne ebx, r12d
xor edx, edx
lea r8d, [rdx + 0x1c]
mov dword [rsp + 0x78], ebx
call sub.msvcrt.dll_memset
mov r12d, dword [rsp + 0x80]
mov edx, 0x17
mov dword [rsp + 0x58], r12d
mov dword [rsp + 0x50], 0x4c
lea eax, [rdx - 0xf]
mov word [rsp + 0x280], dx
lea rcx, [rsp + 0x2b0]
xor r14d, r14d
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x40], r14
mov word [rsp + 0x38], ax
lea rax, [rsp + 0x278]
and ebx, 0xfffffff
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x70]
bts ebx, 0x1c
mov dword [rsp + 0x298], ebx
mov rcx, qword [rax + 0x20]
lea rax, [rsp + 0x280]
mov qword [rsp + 0x28], rcx
xor r8d, r8d
xor edx, edx
mov rcx, rdi
mov qword [rsp + 0x20], rax
call qword [rsp + 0x270]
cmp eax, r14d
jne 0x100031fed
mov dword [r15], 1
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
cmp eax, r14d
cmovle ebx, eax
cmp ebx, r14d
jge 0x100032059
mov rcx, qword [0x10003daf8]
lea rdx, [0x10003daf8]
cmp rcx, rdx
je 0x100032059
test byte [rcx + 0x3c], 1
je 0x100032059
cmp byte [rcx + 0x39], 2
jb 0x100032059
lea edx, [r14 + 0x15]
jmp 0x100032037
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
cmp eax, r12d
cmovle ebx, eax
cmp ebx, r12d
jge 0x10003226e
mov rcx, qword [0x10003daf8]
lea rdx, [0x10003daf8]
cmp rcx, rdx
je 0x10003226e
test byte [rcx + 0x3c], 1
je 0x10003226e
cmp byte [rcx + 0x39], 2
jb 0x10003226e
mov edx, 0x17
mov r9, qword [rsp + 0x60]
mov rcx, qword [rcx + 0x30]
lea r8, [0x100023188]
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], eax
call fcn.100030e40
jmp 0x10003226e
mov ebx, 0x80004005
mov rcx, qword [rsp + 0x70]
call qword [rsp + 0x98]
jmp 0x1000322cb
movzx ebx, ax
or ebx, 0x80070000
cmp eax, r12d
cmovle ebx, eax
cmp ebx, r12d
jge 0x1000322cb
mov rcx, qword [0x10003daf8]
lea rdx, [0x10003daf8]
cmp rcx, rdx
je 0x1000322cb
test byte [rcx + 0x3c], 1
je 0x1000322cb
cmp byte [rcx + 0x39], 2
jb 0x1000322cb
mov rcx, qword [rcx + 0x30]
lea r8, [0x100023188]
mov edx, 0x18
mov r9d, eax
mov dword [rsp + 0x20], ebx
call fcn.100030ca8
call qword [rsp + 0x88]
jmp 0x1000322fa
movzx ebx, ax
or ebx, 0x80070000
cmp eax, r12d
jmp 0x1000322f7
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor r14d, r14d
movzx ebx, ax
or ebx, 0x80070000
cmp eax, r14d
cmovle ebx, eax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x10003231a
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
cmp eax, r12d
cmovle ebx, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea r14, [0x10003daf8]
jmp 0x100032341
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
cmp eax, r12d
cmovle ebx, eax
mov rcx, qword [0x10003daf8]
cmp rcx, r14
je 0x10003236e
test byte [rcx + 0x3c], 1
je 0x10003236e
cmp byte [rcx + 0x39], 7
jb 0x10003236e
mov rcx, qword [rcx + 0x30]
lea r8, [0x100023188]
mov edx, 0x19
call fcn.100030b94
lea rcx, [rsp + 0x60]
call fcn.100030020
mov eax, ebx
mov rcx, qword [rsp + 0x300]
xor rcx, rsp
call fcn.10003a9b0
mov rbx, qword [rsp + 0x368]
add rsp, 0x310
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret