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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov dword [rax + 0x20], r9d
mov qword [rax + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r15, qword [rcx + 0x18]
mov r12d, dword [rcx + 0x3c]
xor ebp, ebp
mov r9, qword [r15 + 0x70]
mov qword [rax - 0x40], rbp
xor esi, esi
movzx eax, byte [r9 + 0x25]
movzx ebx, byte [r9 + 0x24]
mov rdi, r8
shl ebx, 8
mov r14, rdx
mov r13, rcx
or ebx, eax
movzx eax, byte [r9 + 0x26]
mov dword [rsp + 0x70], r12d
shl ebx, 8
or ebx, eax
movzx eax, byte [r9 + 0x27]
shl ebx, 8
or ebx, eax
cmp ebx, r12d
jb 0x14002e23f
mov ecx, 0xc46c
call fcn.140020b18
jmp 0x14002e607
mov rcx, qword [r15 + 0x78]
call fcn.14002bbf8
test ebx, ebx
je 0x14002e545
test eax, eax
jne 0x14002e607
mov rcx, qword [r15 + 0x70]
lea edx, [rbx - 1]
mov qword [rsp + 0x20], rbp
mov eax, edx
mov byte [rcx + 0x27], dl
shr eax, 0x18
mov byte [rcx + 0x24], al
mov eax, edx
shr eax, 0x10
mov byte [rcx + 0x25], al
mov eax, edx
shr eax, 8
test rbp, rbp
mov byte [rcx + 0x26], al
je 0x14002e2a3
mov rcx, qword [rbp + 0x70]
movzx eax, byte [rcx + 1]
movzx edi, byte [rcx]
shl edi, 8
or edi, eax
movzx eax, byte [rcx + 2]
shl edi, 8
or edi, eax
movzx eax, byte [rcx + 3]
jmp 0x14002e2c1
mov rcx, qword [r15 + 0x70]
movzx eax, byte [rcx + 0x21]
movzx edi, byte [rcx + 0x20]
shl edi, 8
or edi, eax
movzx eax, byte [rcx + 0x22]
shl edi, 8
or edi, eax
movzx eax, byte [rcx + 0x23]
shl edi, 8
or edi, eax
cmp edi, r12d
jbe 0x14002e2d7
mov ecx, 0xc499
call fcn.140020b18
jmp 0x14002e2ee
lea r8, [rsp + 0x28]
xor r9d, r9d
mov edx, edi
mov rcx, r13
call fcn.14002ba88
mov rbp, qword [rsp + 0x28]
test eax, eax
mov ebx, eax
jne 0x14002e51f
mov r12, qword [rbp + 0x70]
movzx eax, byte [r12 + 5]
movzx esi, byte [r12 + 4]
shl esi, 8
or esi, eax
movzx eax, byte [r12 + 6]
shl esi, 8
or esi, eax
movzx eax, byte [r12 + 7]
shl esi, 8
or esi, eax
jne 0x14002e36e
mov rcx, qword [rbp + 0x78]
call fcn.14002bbf8
test eax, eax
mov ebx, eax
jne 0x14002e50c
mov rax, qword [rsp + 0x80]
mov rcx, qword [r15 + 0x70]
mov qword [r14], rbp
mov dword [rax], edi
mov rax, qword [rbp + 0x70]
xor ebp, ebp
mov eax, dword [rax]
mov dword [rcx + 0x20], eax
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x14002e367
mov rcx, qword [rcx + 0x78]
call fcn.14001d428
xor esi, esi
jmp 0x14002e511
mov eax, dword [r13 + 0x34]
shr eax, 2
sub eax, 2
cmp esi, eax
ja 0x14002e53e
test esi, esi
je 0x14002e354
mov rcx, qword [rbp + 0x78]
call fcn.14002bbf8
test eax, eax
mov ebx, eax
jne 0x14002e50c
mov ebx, dword [rsp + 0x88]
xor edi, edi
xor r8d, r8d
test ebx, ebx
je 0x14002e431
movzx eax, byte [r12 + 9]
movzx ecx, byte [r12 + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [r12 + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [r12 + 0xb]
shl ecx, 8
or ecx, eax
sub ecx, ebx
jns 0x14002e3d8
neg ecx
mov r15d, 1
cmp esi, r15d
mov r9d, r15d
mov r11, r15
jbe 0x14002e431
lea r10, [r12 + 0xe]
movzx eax, byte [r10 - 1]
movzx edx, byte [r10 - 2]
shl edx, 8
or edx, eax
movzx eax, byte [r10]
shl edx, 8
or edx, eax
movzx eax, byte [r10 + 1]
shl edx, 8
or edx, eax
sub edx, ebx
jns 0x14002e416
neg edx
cmp edx, ecx
jge 0x14002e422
mov edi, r9d
mov r8, r11
mov ecx, edx
add r9d, r15d
add r11, r15
add r10, 4
cmp r9d, esi
jb 0x14002e3ee
movzx eax, byte [r12 + r8*4 + 9]
movzx ebx, byte [r12 + r8*4 + 8]
shl ebx, 8
or ebx, eax
movzx eax, byte [r12 + r8*4 + 0xa]
shl ebx, 8
or ebx, eax
movzx eax, byte [r12 + r8*4 + 0xb]
shl ebx, 8
or ebx, eax
cmp ebx, dword [rsp + 0x70]
ja 0x14002e500
mov rax, qword [rsp + 0x80]
lea edx, [rsi - 1]
cmp edi, edx
mov dword [rax], ebx
jae 0x14002e483
lea eax, [rsi*4 + 4]
mov eax, dword [rax + r12]
mov dword [r12 + r8*4 + 8], eax
mov eax, edx
mov byte [r12 + 7], dl
mov rcx, r13
shr eax, 0x18
mov byte [r12 + 4], al
mov eax, edx
shr eax, 0x10
mov byte [r12 + 5], al
mov eax, edx
mov edx, ebx
shr eax, 8
mov byte [r12 + 6], al
call fcn.140010178
xor r9d, r9d
test eax, eax
mov r8, r14
mov edx, ebx
sete r9b
mov rcx, r13
call fcn.14002ba88
test eax, eax
mov ebx, eax
jne 0x14002e354
mov rcx, qword [r14]
mov rcx, qword [rcx + 0x78]
call fcn.14002bbf8
test eax, eax
mov ebx, eax
je 0x14002e354
mov rcx, qword [r14]
test rcx, rcx
je 0x14002e354
mov rcx, qword [rcx + 0x78]
call fcn.14001d428
jmp 0x14002e354
mov ecx, 0xc510
call fcn.140020b18
mov ebx, eax
mov rsi, qword [rsp + 0x20]
test rbp, rbp
je 0x14002e51f
mov rcx, qword [rbp + 0x78]
call fcn.14001d428
test rsi, rsi
je 0x14002e52d
mov rcx, qword [rsi + 0x78]
call fcn.14001d428
test ebx, ebx
je 0x14002e5dd
and qword [r14], 0
jmp 0x14002e605
mov ecx, 0xc4b3
jmp 0x14002e505
test eax, eax
jne 0x14002e607
add dword [r13 + 0x3c], 1
mov ecx, dword [r13 + 0x3c]
xor edx, edx
mov eax, 0x40000000
div dword [r13 + 0x30]
add eax, 1
cmp ecx, eax
jne 0x14002e56f
lea eax, [rcx + 1]
mov dword [r13 + 0x3c], eax
mov edx, dword [r13 + 0x3c]
mov rax, qword [r13 + 0x18]
mov r9d, 1
mov rcx, qword [rax + 0x70]
mov eax, edx
mov r8, r14
shr eax, 0x18
mov byte [rcx + 0x1f], dl
mov byte [rcx + 0x1c], al
mov eax, edx
shr eax, 0x10
mov byte [rcx + 0x1d], al
mov eax, edx
shr eax, 8
mov byte [rcx + 0x1e], al
mov edx, dword [r13 + 0x3c]
mov rcx, r13
mov dword [rdi], edx
call fcn.14002ba88
test eax, eax
jne 0x14002e607
mov rcx, qword [r14]
mov rcx, qword [rcx + 0x78]
call fcn.14002bbf8
test eax, eax
mov ebx, eax
je 0x14002e5dd
mov rcx, qword [r14]
test rcx, rcx
je 0x14002e52d
mov rcx, qword [rcx + 0x78]
call fcn.14001d428
jmp 0x14002e511
mov rcx, qword [r14]
mov rax, qword [rcx + 0x78]
cmp word [rax + 0x2a], 1
jle 0x14002e602
test rcx, rcx
je 0x14002e5f8
mov rcx, rax
call fcn.14001d428
mov ecx, 0xc55d
jmp 0x14002e235
mov byte [rcx], 0
mov eax, ebx
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret