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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov rsi, qword [rcx]
mov rbp, qword [rsi]
movzx r15d, byte [rcx + 0x42]
xor eax, eax
cmp r15d, 2
setne al
lea eax, [rax + rax*4 + 5]
mov ebx, 1
cmovae ebx, eax
xor edi, edi
mov qword [rsp + 0x68], rdx
test dx, dx
mov qword [rsp + 0x70], rcx
je 0x14006608a
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x14006608a
mov edi, dword [rax]
mov dword [rsp + 0x3c], edi
cmp byte [rbp + 0x61], 0
je 0x1400660a8
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movsxd r14, dword [rsp + 0x3c]
add r14, r14
lea eax, [r15*8 + 0x20]
lea edi, [rbx + rbx]
imul eax, edi
add eax, r14d
mov qword [rsp + 0x90], rbp
movsxd rdx, eax
mov rcx, qword [rsp + 0x90]
call fcn.14002ea2a
test rax, rax
je 0x140066094
mov qword [rsp + 0xa8], rsi
mov ebp, ebx
mov r12, rbp
shl r12, 5
lea r13, [rax + r12]
xorps xmm0, xmm0
movups xmmword [rax + r12 + 0x10], xmm0
movups xmmword [rax + r12], xmm0
inc edi
shl rbp, 6
add rbp, rax
mov rcx, rax
lea rax, [r15*8]
mov qword [rsp + 0x58], rcx
add rcx, 0x18
mov qword [rcx], rbp
dec edi
add rbp, rax
add rcx, 0x20
cmp edi, 1
jg 0x14006611e
cmp dword [rsp + 0x3c], 0
je 0x140066145
mov rcx, rbp
xor edx, edx
mov r8, r14
call fcn.1400ef1e0
jmp 0x140066147
xor ebp, ebp
mov r14, qword [rsp + 0x70]
mov rax, qword [rsp + 0xa8]
mov eax, dword [rax + 0xa4]
cmp eax, 0x30
mov ecx, 0x30
cmovb ecx, eax
mov rax, qword [rsp + 0x58]
mov word [rax + r12 + 0x10], cx
mov ecx, dword [rsp + 0x3c]
test ecx, ecx
je 0x140066193
xor eax, eax
cmp r15b, 1
sbb eax, eax
not al
or al, cl
mov rcx, qword [rsp + 0x58]
mov byte [rcx + r12 + 0x16], al
mov rax, qword [rsp + 0x58]
test r15b, r15b
je 0x14006664d
mov rcx, qword [rsp + 0x68]
add ecx, 0xffffffce
mov dword [rsp + 0x9c], ecx
xor ecx, ecx
mov qword [rsp + 0x78], rcx
mov dword [rsp + 0x60], 0
mov dword [rsp + 0x40], 0
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0xb8], r15
mov qword [rsp + 0xd8], rbx
mov ebx, 1
mov qword [rsp + 0xb0], rbp
mov r12, rax
test ebx, ebx
mov qword [rsp + 0xc0], r13
jg 0x1400661fc
xor r10d, r10d
jmp 0x14006658a
mov rax, qword [rsp + 0x78]
lea rax, [rax*8]
mov qword [rsp + 0xd0], rax
lea rax, [r12 + 0x34]
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0x64], 0
xor r10d, r10d
mov qword [rsp + 0xe0], r12
mov dword [rsp + 0xa4], ebx
mov rbx, qword [r14 + 0x50]
test rbx, rbx
je 0x14006656d
mov r15b, byte [r13 + 0x16]
mov qword [rsp + 0x48], 0
mov rbp, qword [r13]
mov rax, rbp
not rax
test qword [rbx], rax
jne 0x140066564
mov rdi, qword [rbx + 8]
test rdi, rbp
jne 0x140066564
test byte [rbx + 0x29], 0x40
movzx eax, word [r13 + 0x10]
je 0x140066287
cmp ax, 3
jl 0x140066564
mov dword [rsp + 0x54], r10d
mov qword [rsp + 0x80], r9
mov qword [rsp + 0x88], r8
movzx edx, word [rbx + 0x14]
add dx, ax
movzx ecx, word [rbx + 0x12]
mov esi, eax
call fcn.1400689cc
movzx edx, word [r13 + 0x14]
mov ecx, eax
call fcn.1400689cc
mov r11d, eax
add si, word [rbx + 0x16]
test r15b, r15b
mov word [rsp + 0x46], si
js 0x1400662d6
mov rax, qword [r13 + 8]
mov qword [rsp + 0x48], rax
jmp 0x14006630b
movzx r9d, word [r14 + 0x40]
mov rdx, qword [r14 + 0x10]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
mov eax, dword [rsp + 0x60]
mov word [rsp + 0x20], ax
mov rcx, r14
mov r8, r13
mov esi, r11d
call fcn.14006982e
mov r11d, esi
mov r15d, eax
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0x80]
mov r10d, dword [rsp + 0x54]
test r15b, r15b
js 0x14006637b
movsx eax, r15b
mov r12d, dword [rsp + 0x3c]
sub r12d, eax
jle 0x14006637b
movzx esi, r15b
mov rax, qword [rsp + 0xb0]
movzx r14d, word [rax + rsi*2]
test r14w, r14w
jne 0x1400663c4
mov rcx, qword [rsp + 0x70]
test byte [rcx + 0x41], 0x40
mov rax, qword [rsp + 0x68]
je 0x140066368
mov eax, dword [rcx + 0x28]
mov rcx, qword [rsp + 0x68]
cmp ax, cx
cmovge eax, ecx
cmp ax, 0xb
mov dword [rsp + 0xa0], r11d
jge 0x140066384
xor r14d, r14d
jmp 0x140066393
mov eax, r11d
add r11d, 0xfffffffe
jmp 0x1400663f2
movzx ecx, ax
call fcn.14003ed77
mov r14d, eax
add r14d, 0xffffffdf
imul eax, r12d, 0x64
cdq
idiv dword [rsp + 0x3c]
movsxd rcx, eax
call fcn.14003ed77
add r14d, dword [rsp + 0x9c]
add r14d, eax
mov rax, qword [rsp + 0xb0]
mov word [rax + rsi*2], r14w
mov r11d, dword [rsp + 0xa0]
mov ecx, r11d
mov edx, r14d
mov esi, r11d
call fcn.1400689cc
mov r11d, esi
add eax, 5
mov r14, qword [rsp + 0x70]
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0x80]
mov r10d, dword [rsp + 0x54]
test r10d, r10d
mov rsi, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xe0]
jle 0x14006642a
or rdi, rbp
mov ecx, r10d
mov rbp, r12
cmp qword [rbp], rdi
jne 0x140066422
mov dl, byte [rbp + 0x16]
xor dl, r15b
jns 0x14006653c
add rbp, 0x20
dec ecx
jne 0x140066410
mov ecx, r10d
cmp r10d, esi
jge 0x1400664b7
xor edx, edx
cmp r10d, esi
setl dl
add r10d, edx
movsxd rbp, ecx
shl rbp, 5
add rbp, r12
mov rcx, qword [rbx + 8]
or rcx, qword [r13]
mov qword [rbp], rcx
mov rcx, qword [rsp + 0x48]
mov qword [rbp + 8], rcx
movzx ecx, word [rsp + 0x46]
mov word [rbp + 0x10], cx
mov word [rbp + 0x12], ax
mov word [rbp + 0x14], r11w
mov byte [rbp + 0x16], r15b
mov rcx, qword [rbp + 0x18]
mov rdx, qword [r13 + 0x18]
mov r8, qword [rsp + 0xd0]
mov edi, r10d
call fcn.1400eeb30
mov r10d, edi
mov rax, qword [rbp + 0x18]
mov rcx, qword [rsp + 0x78]
mov qword [rax + rcx*8], rbx
cmp edi, esi
jge 0x1400664de
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0x80]
jmp 0x140066564
cmp ax, r9w
jg 0x140066564
mov ecx, dword [rsp + 0x40]
jne 0x140066436
mov ecx, dword [rsp + 0x40]
cmp r11w, r8w
jge 0x140066564
jmp 0x140066436
mov dword [rsp + 0x40], 0
movzx r8d, word [r12 + 0x10]
movzx r9d, word [r12 + 0x12]
cmp esi, 2
jb 0x140066564
mov dword [rsp + 0x40], 0
mov eax, 1
mov rcx, qword [rsp + 0xc8]
movzx edx, word [rcx - 2]
cmp dx, r9w
jle 0x14006651b
movzx ebp, word [rcx]
jmp 0x140066526
jne 0x140066530
movzx ebp, word [rcx]
cmp bp, r8w
jle 0x140066530
mov r8d, ebp
mov r9d, edx
mov dword [rsp + 0x40], eax
inc eax
add rcx, 0x20
cmp esi, eax
jne 0x14006650c
jmp 0x140066564
cmp word [rbp + 0x12], ax
jl 0x140066564
jne 0x14006644b
movzx ecx, word [rsp + 0x46]
cmp word [rbp + 0x10], cx
jl 0x140066564
jne 0x14006644b
cmp word [rbp + 0x14], r11w
jg 0x14006644b
mov rbx, qword [rbx + 0x40]
jmp 0x14006623c
mov eax, dword [rsp + 0x64]
inc eax
add r13, 0x20
mov ebx, dword [rsp + 0xa4]
mov dword [rsp + 0x64], eax
cmp eax, ebx
jne 0x140066238
mov rdx, qword [rsp + 0x78]
inc rdx
inc dword [rsp + 0x60]
mov rax, qword [rsp + 0xc0]
mov r13, r12
mov ebx, r10d
mov r15, qword [rsp + 0xb8]
mov rcx, rdx
mov qword [rsp + 0x78], rdx
cmp rdx, r15
jne 0x1400661e5
test r10d, r10d
je 0x1400665f3
cmp r10d, 2
jl 0x14006660c
mov eax, r10d
lea rcx, [r12 + 0x20]
dec rax
movzx edx, word [r12 + 0x12]
mov r13, rcx
cmp dx, word [rcx + 0x12]
jg 0x1400665e5
mov r13, r12
add rcx, 0x20
mov r12, r13
dec rax
jne 0x1400665d3
jmp 0x14006660f
lea rdx, [0x14014db60]
mov rcx, qword [rsp + 0xa8]
call fcn.1400307ff
jmp 0x1400667da
mov r13, r12
test r15b, r15b
je 0x14006664d
mov rax, qword [r14 + 8]
mov ecx, r15d
lea rdx, [r14 + 0x3e0]
xor ebp, ebp
mov rbx, qword [r13 + 0x18]
mov rbx, qword [rbx + rbp*8]
mov qword [rdx], rbx
movzx ebx, byte [rbx + 0x10]
mov byte [rdx - 0x1c], bl
imul rbx, rbx, 0x70
mov ebx, dword [rax + rbx + 0x4c]
mov dword [rdx - 0x44], ebx
inc rbp
add rdx, 0x58
cmp rcx, rbp
jne 0x140066624
movzx eax, word [r14 + 0x40]
and eax, 0x180
cmp eax, 0x100
jne 0x1400666b2
cmp word [rsp + 0x68], 0
je 0x1400666b2
cmp byte [r14 + 0x47], 0
jne 0x1400666b2
mov rax, qword [r13 + 0x18]
lea rcx, [r15 - 1]
mov rax, qword [rax + r15*8 - 8]
mov rdx, qword [r14 + 0x18]
lea rbp, [rsp + 0x48]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rax
mov word [rsp + 0x20], cx
mov rcx, r14
mov r8, r13
mov r9w, 0x80
call fcn.14006982e
movsx eax, al
mov rcx, qword [r14 + 0x18]
cmp dword [rcx], eax
jne 0x1400666b2
mov byte [r14 + 0x47], 2
mov byte [r14 + 0x48], 0
mov rdx, qword [r14 + 0x10]
test rdx, rdx
je 0x1400667d0
movzx eax, word [r14 + 0x40]
mov cl, byte [r13 + 0x16]
test al, al
js 0x140066762
mov byte [r14 + 0x43], cl
mov rbp, qword [r13 + 8]
mov qword [r14 + 0x58], rbp
test cl, cl
jg 0x14006676e
mov byte [r14 + 0x43], 0
test r15b, r15b
je 0x14006676e
mov rbp, qword [r13 + 0x18]
lea ecx, [r15 - 1]
mov rbp, qword [rbp + rcx*8]
mov ebx, dword [rbp + 0x28]
bt ebx, 0xc
jb 0x14006676e
and ebx, 0x104
cmp ebx, 0x104
je 0x14006676e
lea rax, [rsp + 0x48]
mov qword [rax], 0
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbp
mov word [rsp + 0x20], cx
mov rcx, r14
mov r8, r13
mov r9w, 0x800
call fcn.14006982e
movsx eax, al
mov rdx, qword [r14 + 0x10]
cmp dword [rdx], eax
jne 0x14006675b
mov byte [r14 + 0x48], 1
mov rax, qword [rsp + 0x48]
mov qword [r14 + 0x58], rax
movzx eax, word [r14 + 0x40]
jmp 0x14006676e
movsx ecx, cl
cmp dword [rdx], ecx
jne 0x14006676e
mov byte [r14 + 0x47], 2
bt eax, 9
jae 0x1400667d0
test r15b, r15b
je 0x1400667d0
movsx eax, byte [r14 + 0x43]
cmp dword [rdx], eax
jne 0x1400667d0
lea rax, [rsp + 0x48]
mov qword [rax], 0
mov rcx, qword [r13 + 0x18]
dec r15d
mov rcx, qword [rcx + r15*8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov word [rsp + 0x20], r15w
mov rcx, r14
mov r8, r13
xor r9d, r9d
call fcn.14006982e
movsx eax, al
mov rcx, qword [r14 + 0x10]
cmp dword [rcx], eax
jne 0x1400667d0
mov byte [r14 + 0x44], 1
mov rax, qword [rsp + 0x48]
mov qword [r14 + 0x58], rax
movzx eax, word [r13 + 0x10]
mov word [r14 + 0x60], ax
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x58]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.14002e981