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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x108]
sub rsp, 0x208
movaps xmmword [rsp + 0x1f0], xmm6
mov rax, qword [0x140915ac0]
xor rax, rsp
mov qword [rbp + 0xe0], rax
mov r13, qword [rbp + 0x170]
xor r14d, r14d
mov r11, qword [rbp + 0x188]
mov r15d, 1
mov r12, qword [rbp + 0x1a0]
mov edi, r14d
movsd xmm6, qword [0x140826430]
mov esi, r15d
movups xmm0, xmmword [r13]
mov qword [rbp - 0x58], r8
mov ebx, r14d
movups xmm1, xmmword [r13 + 0x10]
movabs r8, 0x7ffffffc8000000c
mov qword [rbp - 0x60], r9
movaps xmmword [rbp - 0x40], xmm0
movups xmm0, xmmword [r13 + 0x20]
mov qword [rbp - 0x50], rdx
movaps xmmword [rbp - 0x30], xmm1
movups xmm1, xmmword [r13 + 0x30]
mov qword [rbp - 0x78], rcx
movaps xmmword [rbp - 0x20], xmm0
movups xmm0, xmmword [r13 + 0x40]
mov qword [rsp + 0x70], r11
movaps xmmword [rbp - 0x10], xmm1
movups xmm1, xmmword [r13 + 0x50]
mov qword [rbp - 0x68], r12
movaps xmmword [rbp], xmm0
movups xmm0, xmmword [r13 + 0x60]
mov qword [rbp - 0x80], r14
movaps xmmword [rbp + 0x10], xmm1
movups xmm1, xmmword [r13 + 0x70]
movaps xmmword [rbp + 0x20], xmm0
movups xmm0, xmmword [r13 + 0x80]
movaps xmmword [rbp + 0x30], xmm1
movups xmm1, xmmword [r13]
movaps xmmword [rbp + 0x40], xmm0
movups xmm0, xmmword [r13 + 0x10]
movaps xmmword [rbp + 0x50], xmm1
movups xmm1, xmmword [r13 + 0x20]
movaps xmmword [rbp + 0x60], xmm0
movups xmm0, xmmword [r13 + 0x30]
movaps xmmword [rbp + 0x70], xmm1
movups xmm1, xmmword [r13 + 0x40]
movaps xmmword [rbp + 0x80], xmm0
movups xmm0, xmmword [r13 + 0x50]
movaps xmmword [rbp + 0x90], xmm1
movups xmm1, xmmword [r13 + 0x60]
movaps xmmword [rbp + 0xa0], xmm0
movups xmm0, xmmword [r13 + 0x70]
movaps xmmword [rbp + 0xb0], xmm1
movups xmm1, xmmword [r13 + 0x80]
movaps xmmword [rbp + 0xc0], xmm0
movaps xmmword [rbp + 0xd0], xmm1
cmp edi, 0x10
jae 0x14009cc5d
lea ecx, [rbx + 1]
mov edx, 0x18
shl edx, cl
mov r12d, r15d
lea ecx, [rbx + 0x1a]
mov dword [rsp + 0x78], edx
shl r12d, cl
mov eax, r15d
lea ecx, [rbx + 2]
shl eax, cl
sub r12d, eax
mov ecx, ebx
mov dword [rbp + 0x90], ebx
add edx, 0x10
mov r10d, edi
shl r10d, cl
add edx, r10d
mov dword [rbp + 0x94], r10d
mov eax, edx
lea ecx, [r12 + r10]
cmp dword [rbp + 0x74], r14d
je 0x14009cbbf
cmp r10d, 0x7ffffffc
jb 0x14009cb0c
mov rax, r8
jmp 0x14009cba8
mov ecx, ebx
mov r9d, 0x7ffffffc
sub r9d, r10d
mov r11d, r15d
shr r9d, cl
mov eax, r14d
add r9d, 4
shl r11d, cl
mov ecx, r9d
shr ecx, 1
je 0x14009cb36
nop
inc eax
shr ecx, 1
jne 0x14009cb30
lea ecx, [rax - 1]
shr r9d, cl
lea eax, [rax*2 - 4]
and r9d, r15d
or r9d, eax
jne 0x14009cb54
mov eax, r10d
lea edx, [r10 + 0x10]
jmp 0x14009cb9c
dec r9d
mov edx, r15d
mov r8d, r9d
mov eax, r9d
and eax, r15d
shr r8d, 1
lea ecx, [r8 + 2]
shl edx, cl
lea ecx, [r8 + 1]
shl eax, cl
lea ecx, [r8 + 1]
add edx, eax
mov eax, r15d
shl eax, cl
add edx, 0xfffffffb
add eax, edx
mov ecx, ebx
shl eax, cl
lea edx, [r11 - 1]
shl r9d, cl
add eax, r11d
or edx, r9d
add eax, r10d
add edx, 0x11
add edx, r10d
mov r11, qword [rsp + 0x70]
shl rax, 0x20
or rax, rdx
lea ecx, [rbx + 1]
mov edx, 0x3e
shl edx, cl
mov rcx, rax
add edx, 0x10
add edx, r10d
shr rcx, 0x20
mov dword [rbp + 0x9c], eax
mov eax, ecx
mov qword [rbp + 0xa0], rax
mov dword [rbp + 0x98], edx
cmp ebx, dword [rbp]
jne 0x14009cbe1
cmp r10d, dword [rbp + 4]
cmove esi, r14d
mov rdx, qword [rbp + 0x190]
lea rax, [rbp - 0x70]
lea r9, [rbp + 0x90]
mov qword [rsp + 0x20], rax
lea r8, [rbp]
mov rcx, r11
call fcn.14009de90
test eax, eax
je 0x14009cc4e
movsd xmm0, qword [rbp - 0x70]
comisd xmm0, xmm6
ja 0x14009cc4e
movsd xmm1, qword [rbp + 0xa0]
movaps xmm6, xmm0
movaps xmm0, xmmword [rbp + 0x90]
inc edi
mov edx, dword [rsp + 0x78]
movabs r8, 0x7ffffffc8000000c
mov r11, qword [rsp + 0x70]
movups xmmword [r13 + 0x40], xmm0
movsd qword [r13 + 0x50], xmm1
cmp edi, 0x10
jb 0x14009cad0
mov r11, qword [rsp + 0x70]
movabs r8, 0x7ffffffc8000000c
test edi, edi
lea eax, [rdi - 1]
cmove eax, edi
inc ebx
mov edi, eax
shr edi, 1
cmp ebx, 3
jbe 0x14009caa5
mov r12, qword [rbp - 0x68]
mov rbx, qword [rbp + 0x190]
test esi, esi
je 0x14009ccba
lea rax, [rbp - 0x68]
mov rdx, rbx
lea r9, [rbp]
mov qword [rsp + 0x20], rax
lea r8, [rbp]
mov rcx, r11
call fcn.14009de90
comisd xmm6, xmmword [rbp - 0x68]
jbe 0x14009ccba
movaps xmm0, xmmword [rbp]
movsd xmm1, qword [rbp + 0x10]
movups xmmword [r13 + 0x40], xmm0
movsd qword [r13 + 0x50], xmm1
mov rsi, qword [rsp + 0x70]
lea r9, [r13 + 0x40]
mov rcx, rsi
lea r8, [rbp]
mov rdx, rbx
call fcn.14009fbc0
mov r9, qword [rbp - 0x50]
lea rax, [r12 + 0x60]
mov qword [rsp + 0x48], rax
lea rcx, [r12 + 0x30]
mov rax, qword [rbp - 0x60]
mov r8, rbx
mov rbx, qword [rbp - 0x78]
mov rdx, rsi
mov qword [rsp + 0x40], rcx
mov rcx, rbx
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rax
mov rax, qword [rbp - 0x58]
mov qword [rsp + 0x20], rax
call fcn.140096870
cmp dword [r13 + 0x20], r14d
jne 0x14009cd6c
mov rdx, qword [r12]
mov r15d, 0x40
test rdx, rdx
je 0x14009cd42
lea rdx, [rdx*4]
mov rcx, rbx
call fcn.140082d90
mov rdx, rax
jmp 0x14009cd45
mov rdx, r14
mov rax, r14
mov qword [rbp - 0x80], rdx
cmp qword [r12], rax
jbe 0x14009cd6c
mov ecx, dword [rbp + 0x198]
nop dword [rax + rax]
mov dword [rdx + rax*4], ecx
inc rax
cmp rax, qword [r12]
jb 0x14009cd60
imul r15, qword [r12]
test r15, r15
je 0x14009cdd3
imul rdx, r15, 0x410
mov rcx, rbx
call fcn.140082d90
mov qword [rsp + 0x78], rax
mov rdi, r15
movabs rsi, 0x7ff0000000000000
lea rbx, [rax + 0x408]
nop
lea rcx, [rbx - 0x408]
xor edx, edx
mov r8d, 0x400
call fcn.1400bf3e0
mov qword [rbx - 8], r14
mov qword [rbx], rsi
lea rbx, [rbx + 0x410]
sub rdi, 1
jne 0x14009cda0
mov rsi, qword [rsp + 0x70]
mov rbx, qword [rbp - 0x78]
jmp 0x14009cdd8
mov qword [rsp + 0x78], r14
mov rdi, qword [r12 + 0x60]
shl rdi, 2
test rdi, rdi
je 0x14009ce4f
imul rdx, rdi, 0x890
mov rcx, rbx
call fcn.140082d90
mov qword [rbp - 0x70], rax
movabs rsi, 0x7ff0000000000000
lea rbx, [rax + 0x888]
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x78], rax
nop dword [rax]
nop dword [rax + rax]
lea rcx, [rbx - 0x888]
xor edx, edx
mov r8d, 0x880
call fcn.1400bf3e0
mov qword [rbx - 8], r14
mov qword [rbx], rsi
lea rbx, [rbx + 0x890]
sub rdi, 1
jne 0x14009ce20
mov rsi, qword [rsp + 0x70]
jmp 0x14009ce53
mov qword [rbp - 0x70], r14
mov rax, qword [r12 + 0x30]
mov qword [r12 + 0xc8], rax
test rax, rax
je 0x14009ce77
mov rcx, qword [rbp - 0x78]
imul rdx, rax, 0xb10
call fcn.140082d90
jmp 0x14009ce7a
mov rax, r14
mov rdi, qword [r12 + 0xc8]
mov qword [r12 + 0xc0], rax
test rdi, rdi
je 0x14009cecd
lea rbx, [rax + 0xb08]
movabs rsi, 0x7ff0000000000000
lea rcx, [rbx - 0xb08]
xor edx, edx
mov r8d, 0xb00
call fcn.1400bf3e0
mov qword [rbx - 8], r14
mov qword [rbx], rsi
lea rbx, [rbx + 0xb10]
sub rdi, 1
jne 0x14009cea0
mov rsi, qword [rsp + 0x70]
mov rax, qword [r12 + 0xc0]
lea r9, [r12 + 0x30]
mov rdi, qword [rbp - 0x70]
mov r8, r12
mov rbx, qword [rsp + 0x78]
mov rcx, rsi
mov rdx, qword [rbp + 0x190]
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x60], rax
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rax
movzx eax, byte [rbp + 0x180]
mov byte [rsp + 0x48], al
movzx eax, byte [rbp + 0x178]
mov byte [rsp + 0x40], al
mov rax, qword [rbp - 0x60]
mov qword [rsp + 0x38], rax
mov rax, qword [rbp - 0x58]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp - 0x50]
mov qword [rsp + 0x28], rax
lea rax, [r12 + 0x60]
mov qword [rsp + 0x20], rax
call fcn.1400b97d0
mov rsi, qword [rbp - 0x78]
mov rdx, qword [rbp - 0x80]
mov rcx, rsi
call fcn.140082dc0
mov rdx, qword [r12]
shl rdx, 6
mov qword [r12 + 0x98], rdx
test rdx, rdx
je 0x14009cf7f
lea rdx, [rdx*4]
mov rcx, rsi
call fcn.140082d90
jmp 0x14009cf82
mov rax, r14
mov qword [r12 + 0x90], rax
mov rax, qword [r12 + 0x98]
mov qword [r12 + 0xb8], rax
test rax, rax
je 0x14009cfb3
imul rdx, rax, 0x410
mov rcx, rsi
call fcn.140082d90
mov rcx, rax
jmp 0x14009cfb6
mov rcx, r14
mov rax, qword [r12 + 0x90]
mov r9d, pe_nt_image_headers64
mov qword [rsp + 0x30], rax
mov r8, r15
lea rax, [r12 + 0xb8]
mov qword [r12 + 0xb0], rcx
mov qword [rsp + 0x28], rax
mov rdx, rbx
mov qword [rsp + 0x20], rcx
mov rcx, rsi
call fcn.1400b72f0
mov rdx, rbx
mov rcx, rsi
call fcn.140082dc0
cmp dword [r13 + 0x20], r14d
je 0x14009d492
mov r8, qword [r12]
test r8, r8
je 0x14009d492
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [r12 + 0x90]
dec r8
mov rdx, r8
shl rdx, 6
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 4], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 8], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xc], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x10], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x14], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x18], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x1c], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x20], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x24], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x28], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x2c], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x30], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x34], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x38], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x3c], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x40], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x44], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x48], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x4c], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x50], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x54], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x58], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x5c], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x60], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x64], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x68], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x6c], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x70], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x74], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x78], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x7c], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x80], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x84], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x88], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x8c], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x90], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x94], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x98], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0x9c], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xa0], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xa4], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xa8], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xac], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xb0], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xb4], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xb8], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xbc], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xc0], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xc4], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xc8], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xcc], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xd0], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xd4], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xd8], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xdc], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xe0], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xe4], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xe8], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xec], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xf0], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xf4], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xf8], eax
mov rcx, qword [r12 + 0x90]
mov eax, dword [rcx + r8*4]
mov dword [rcx + rdx*4 + 0xfc], eax
test r8, r8
jne 0x14009d020
mov rax, qword [r12 + 0x60]
lea rdx, [rax*4]
mov qword [r12 + 0xa8], rdx
test rdx, rdx
je 0x14009d4be
lea rdx, [rdx*4]
mov rcx, rsi
call fcn.140082d90
jmp 0x14009d4c1
mov rax, r14
mov qword [r12 + 0xa0], rax
lea rbx, [r12 + 0xd8]
mov rax, qword [r12 + 0xa8]
mov qword [rbx], rax
test rax, rax
je 0x14009d4f3
imul rdx, rax, 0x890
mov rcx, rsi
call fcn.140082d90
mov r14, rax
mov rax, qword [r12 + 0xa0]
mov r9d, pe_nt_image_headers64
mov r8, qword [r12 + 0xa8]
mov rdx, rdi
mov qword [rsp + 0x30], rax
mov rcx, rsi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r14
mov qword [r12 + 0xd0], r14
call fcn.1400b6e80
mov rdx, rdi
mov rcx, rsi
call fcn.140082dc0
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.1400bb0a0
movaps xmm6, xmmword [rsp + 0x1f0]
add rsp, 0x208
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret