Function at 0x14001c3f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x58
xor eax, eax
mov r14, r9
mov qword [rbp - 0x28], rax
mov esi, eax
mov r15d, eax
mov word [rbp - 0x18], ax
mov qword [rbp - 0x16], rax
mov r12d, r8d
mov dword [rbp - 0xe], eax
mov rbx, rdx
mov word [rbp - 0xa], ax
mov r13, rcx
mov qword [rbp - 0x20], rax
mov dword [rbp + 0x48], eax
mov eax, 0x746e
cmp word [rcx + 0x1c], ax
jne 0x14001c7a7
mov r15, qword [rcx + 0x10]
cmp dword [r15], 0xbee0bee0
jne 0x14001c7a7
mov edi, dword [rbp + 0x68]
test r9, r9
jne 0x14001c475
test edi, edi
je 0x14001c475
mov ebx, 0x57
jmp 0x14001c7be
mov edx, edi
mov ecx, 1
shr edx, 1
test cl, dil
jne 0x14001c50f
lea eax, [r8 - 1]
cmp eax, ecx
jbe 0x14001c495
cmp r8d, 7
jne 0x14001c50f
test r9, r9
je 0x14001c50f
test edx, edx
je 0x14001c50f
lea eax, [rdx - 1]
lea r8, [r9 + rax*2]
cmp word [r8], si
je 0x14001c50f
lea rsi, [rdx + rdx]
lea rcx, [rsi + r9]
mov rax, rcx
xor rax, r8
test rax, 0xfffffffffffff000
jne 0x14001c50d
xor eax, eax
cmp word [rcx], ax
jne 0x14001c50d
lea rcx, [rdi + 2]
lea edx, [rax + 0x10]
call qword [sym.imp.msvcrt.dll__aligned_malloc]
mov qword [rbp - 0x20], rax
mov rbx, rax
test rax, rax
jne 0x14001c4eb
mov ebx, 8
jmp 0x14001c7bc
mov r8, rsi
mov rdx, r14
mov rcx, rbx
call sub.msvcrt.dll_memcpy
xor eax, eax
mov qword [rbp + 0x60], rbx
mov word [rsi + rbx], ax
mov r14, rbx
mov rbx, qword [rbp + 0x50]
add edi, 2
xor esi, esi
lea rcx, [r15 + 0x88]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, 1
mov dword [rbp + 0x48], ecx
cmp word [r13 + 0x1e], si
je 0x14001c535
mov ebx, 0x3fa
jmp 0x14001c7be
mov rax, qword [r13 + 0x28]
test byte [rax + 2], 0x10
je 0x14001c587
mov ebx, 6
cmp r12d, ebx
jne 0x14001c46b
test cl, dil
jne 0x14001c46b
cmp edi, 0xffff
ja 0x14001c46b
mov rbx, qword [rbp + 0x50]
test rbx, rbx
je 0x14001c46b
mov rdx, rbx
lea rcx, [0x14002bfe0]
call qword [sym.imp.msvcrt.dll__wcsicmp]
test eax, eax
jne 0x14001c46b
lea r8, [rbp - 0x28]
mov rdx, r13
mov rcx, rbx
call fcn.14001cc40
mov ebx, eax
test eax, eax
je 0x14001c766
cmp eax, 2
jne 0x14001c7be
mov r12, qword [rbp + 0x50]
test r12, r12
je 0x14001c5d6
or rbx, 0xffffffffffffffff
inc rbx
cmp word [r12 + rbx*2], si
jne 0x14001c5b6
add rbx, rbx
cmp rbx, 0xffff
jbe 0x14001c5d9
mov ebx, 0x216
jmp 0x14001c7be
movzx ebx, si
mov eax, 0x7fff
mov word [rbp - 0x18], bx
cmp bx, ax
ja 0x14001c46b
mov edx, 0x10
lea r14d, [rdx + 0x20]
mov ecx, r14d
call qword [sym.imp.msvcrt.dll__aligned_malloc]
mov rsi, rax
test rax, rax
je 0x14001c4e1
mov r8d, r14d
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
movzx eax, bx
lea edx, [r14 - 0x20]
mov ecx, eax
mov word [rbp - 0x16], bx
mov qword [rbp - 0x28], rax
call qword [sym.imp.msvcrt.dll__aligned_malloc]
mov qword [rbp - 0x10], rax
test rax, rax
jne 0x14001c640
mov ebx, 8
jmp 0x14001c7ac
mov r8, qword [rbp - 0x28]
mov rdx, r12
mov rcx, qword [rbp - 0x10]
call sub.msvcrt.dll_memcpy
mov r8, qword [r15 + 0x10]
lea r9, [rbp - 0x18]
mov rdx, qword [rbp - 0x28]
mov rcx, qword [rbp - 0x10]
call fcn.14001fc1c
movzx r12d, ax
mov edx, 0x10
lea eax, [r12 + 0x14]
mov ecx, eax
mov qword [rbp - 0x28], rax
call qword [sym.imp.msvcrt.dll__aligned_malloc]
mov r14, rax
test rax, rax
je 0x14001c636
mov r8, qword [rbp - 0x28]
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
mov eax, 0x6b76
mov qword [rsi + 0x18], r14
mov word [r14], ax
mov eax, dword [rbp + 0x58]
mov dword [r14 + 0xc], eax
movzx eax, bx
cmp r12d, eax
jae 0x14001c6bd
mov eax, 1
or word [r14 + 0x10], ax
jmp 0x14001c6c7
mov eax, 0xfffe
and word [r14 + 0x10], ax
mov rdx, qword [rbp - 0x10]
lea rcx, [r14 + 0x14]
mov r8, r12
mov word [r14 + 2], r12w
call sub.msvcrt.dll_memcpy
mov eax, dword [rbp + 0x58]
mov r9d, edi
mov r8, qword [rbp + 0x60]
mov rdx, rsi
mov rcx, r15
mov dword [rsp + 0x20], eax
call fcn.14001ce04
mov ebx, eax
test eax, eax
jne 0x14001c7ac
mov rdx, qword [r13 + 0x28]
cmp dword [rdx + 0x40], edi
jae 0x14001c70b
mov dword [rdx + 0x40], edi
mov rax, qword [rsi + 0x18]
mov r8d, 1
test byte [rax + 0x10], r8b
je 0x14001c732
mov eax, dword [rdx + 0x3c]
mov rcx, r12
add rcx, rcx
cmp rax, rcx
jae 0x14001c73c
lea eax, [r12 + r12]
mov dword [rdx + 0x3c], eax
jmp 0x14001c73c
cmp dword [rdx + 0x3c], r12d
jae 0x14001c73c
mov dword [rdx + 0x3c], r12d
add dword [rdx + 0x24], r8d
lea rax, [r13 + 0x68]
mov rcx, qword [rax + 8]
mov qword [rsi], rax
mov qword [rsi + 8], rcx
cmp qword [rcx], rax
je 0x14001c75b
mov ecx, 3
int 0x29
mov qword [rcx], rsi
mov qword [rax + 8], rsi
xor esi, esi
jmp 0x14001c797
mov rdx, qword [rbp - 0x28]
mov r9d, edi
mov r8, r14
mov dword [rsp + 0x20], r12d
mov rcx, r15
mov rax, qword [rdx + 0x18]
mov dword [rax + 0xc], r12d
call fcn.14001ce04
mov ebx, eax
test eax, eax
jne 0x14001c7be
mov rax, qword [r13 + 0x28]
cmp dword [rax + 0x40], edi
jae 0x14001c797
mov dword [rax + 0x40], edi
mov eax, 1
mov ebx, esi
mov dword [r15 + 0xb4], eax
jmp 0x14001c7be
mov ebx, 6
test rsi, rsi
je 0x14001c7bc
mov rdx, rsi
mov rcx, r15
call fcn.14001f720
xor esi, esi
mov r14, qword [rbp - 0x10]
test r14, r14
je 0x14001c7d2
mov rdx, r14
mov rcx, r15
call fcn.14001f720
mov rax, qword [rbp - 0x20]
test rax, rax
je 0x14001c7e4
mov rcx, rax
call qword [sym.imp.msvcrt.dll__aligned_free]
cmp dword [rbp + 0x48], esi
je 0x14001c7f6
lea rcx, [r15 + 0x88]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, ebx
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret