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

Disassembly:
mov dword [rsp + 0x20], r9d
push rsi
push rdi
push r15
sub rsp, 0x80
movzx eax, byte [rcx]
mov r15, r8
mov edi, edx
mov rsi, rcx
test al, al
je 0x14002b173
cmp dword [rcx + 0x38], 0
jle 0x14002b173
xor eax, eax
add rsp, 0x80
pop r15
pop rdi
pop rsi
ret
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x60], r14
xor r14d, r14d
mov qword [rcx + 0x3c], r14
mov dword [rcx + 0xf8], r14d
mov qword [rcx + 0x110], r14
mov qword [rcx + 0x100], r14
mov qword [rcx + 0x108], r14
mov qword [rcx + 0x118], r14
mov dword [rcx + 0x38], 0xffffffff
test al, al
jne 0x14002b211
mov word [rcx], 1
lea rdx, [rcx + 0x98]
mov dword [rcx + 0x124], 1
mov byte [rcx + 2], r14b
mov dword [rcx + 0x4c], r14d
mov qword [rcx + 0xd0], r14
mov byte [rcx + 0x128], r14b
mov rax, qword [0x1401b1ed0]
mov ecx, dword [0x1403db108]
call qword [rax + 0x40]
lea rcx, [rsi + 0x98]
mov qword [rsi + 0xc0], rax
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov qword [rsi + 0xc8], r14
xor edx, edx
mov qword [rsp + 0x78], rbp
lea rcx, [rdi + 0xda]
mov qword [rsp + 0x70], r12
mov rax, r15
mov qword [rsi + 8], r15
div rcx
mov ecx, 0x80
mov dword [rsi + 0x10], edi
cmp dword [rsp + 0xc8], ecx
mov rbx, rax
cmova ecx, dword [rsp + 0xc8]
dec ecx
mov eax, ecx
shr eax, 1
or ecx, eax
mov eax, ecx
shr eax, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or ecx, eax
mov r13d, ecx
shr r13d, 0x10
or r13d, ecx
inc r13d
cmp ebx, 8
jb 0x14002b4cc
lea r10d, [r13*2]
mov qword [rsp + 0xa0], r10
nop dword [rax + rax]
lea ecx, [rbx - 1]
mov eax, ecx
shr eax, 1
or ecx, eax
mov eax, ecx
shr eax, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
lea ecx, [rax*2 + 2]
lea eax, [rbx + rbx*4]
mov dword [rsi + 0x28], ecx
shr eax, 2
cmp ecx, eax
jae 0x14002b2ce
add ecx, ecx
mov dword [rsi + 0x28], ecx
mov r9d, dword [rsi + 0x10]
lea r12d, [rbx + rbx]
mov eax, ebx
lea rbp, [r12 + r12*2]
shl rbp, 4
mov edx, ecx
add rdx, r10
lea r8, [r9 + 0x70]
imul rax, r8
shl rdx, 3
add rax, rdx
add rax, rbp
cmp rax, r15
jbe 0x14002b318
nop dword [rax]
cmp ebx, 8
jbe 0x14002b318
dec ebx
mov eax, ebx
imul rax, r8
add rax, rdx
add rax, rbp
cmp rax, r15
ja 0x14002b300
mov r14d, ebx
xor edx, edx
imul r9, r14
mov rcx, r9
call fcn.140021200
mov qword [rsi + 0x80], rax
test rax, rax
je 0x14002b3b0
mov r11d, dword [rsi + 0x28]
lea rcx, [rsi + 0xe8]
imul r8, r14, 0x70
xor r14d, r14d
shl r11, 3
mov qword [rsp + 0x58], r14
lea rax, [rsi + 0xf0]
lea r10, [rsi + 0x60]
mov edi, r13d
shl rdi, 3
lea r9, [rsi + 0x58]
mov qword [rsp + 0x50], rdi
lea rdx, [rsi + 0x78]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rcx
lea ecx, [r14 + 0x20]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r11
call fcn.14002d5e0
test rax, rax
jne 0x14002b3cf
mov rcx, qword [rsi + 0x80]
call fcn.1400211b0
mov qword [rsi + 0x80], r14
jmp 0x14002b3b3
xor r14d, r14d
cmp ebx, 8
jb 0x14002b460
mov r10, qword [rsp + 0xa0]
shr ebx, 2
lea ebx, [rbx + rbx*2]
jmp 0x14002b290
mov eax, dword [rsp + 0xb8]
mov dword [rsi + 0x40], ebx
mov dword [rsi + 0x38], ebx
mov dword [rsi + 0x30], r12d
mov dword [rsi + 0x34], r14d
mov qword [rsi + 0x68], r14
mov qword [rsi + 0x44], r14
mov dword [rsi + 0x3c], r14d
mov dword [rsi + 0xf8], r14d
mov dword [rsi + 0x50], r14d
mov qword [rsi + 0x88], r14
mov qword [rsi + 0x90], r14
mov qword [rsi + 0x70], r14
mov qword [rsi + 0x20], r14
test eax, eax
je 0x14002b428
mov ecx, ebx
imul ecx, eax
mov eax, 0x51eb851f
mul ecx
shr edx, 5
inc edx
jmp 0x14002b42a
mov edx, ebx
mov ecx, dword [rsp + 0xc0]
mov dword [rsi + 0x14], edx
test ecx, ecx
je 0x14002b447
imul ebx, ecx
mov eax, 0x51eb851f
mul ebx
mov ebx, edx
shr ebx, 5
mov dword [rsi + 0x18], ebx
mov al, 1
mov dword [rsi + 0x2c], r13d
mov qword [rsi + 0xd8], r14
mov qword [rsi + 0xe0], r14
jmp 0x14002b4ce
call fcn.140020770
mov edx, 0x1000
mov ecx, 5
mov dword [rax], 0xc
imul ebx, dword [rsi + 0x10]
mov r8d, ebx
call fcn.140020590
call fcn.140020770
mov rcx, qword [rsi + 0x80]
mov ebx, dword [rax]
mov dword [rsi + 0x38], r14d
mov dword [rsi + 0x120], r14d
test rcx, rcx
je 0x14002b4ab
call fcn.1400211b0
mov qword [rsi + 0x80], r14
mov rcx, qword [rsi + 0x78]
test rcx, rcx
je 0x14002b4bd
call fcn.1400211b0
mov qword [rsi + 0x78], r14
call fcn.140020770
mov dword [rax], ebx
xor eax, eax
mov byte [rsi + 3], 0
jmp 0x14002b4e2
xor al, al
mov byte [rsi + 3], al
mov eax, dword [rsi + 0x38]
test eax, eax
mov ecx, eax
cmovle ecx, r14d
mov dword [rsi + 0x120], ecx
mov r12, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov r13, qword [rsp + 0x68]
mov rbx, qword [rsp + 0xa8]
mov r14, qword [rsp + 0x60]
add rsp, 0x80
pop r15
pop rdi
pop rsi
ret