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

Disassembly:
mov qword [rsp + 0x18], r8
push rbx
push rdi
push r15
sub rsp, 0x60
cmp dword [rcx + 0x3c], 0
mov rbx, r8
movsxd rdi, edx
mov r15, rcx
jne 0x1402f7f27
mov r8, rdi
add r8, r8
movsxd rax, dword [rbx + r8*8 + 0x24]
test eax, eax
je 0x1402f7f27
imul rcx, rax, 0x38
add rcx, qword [rbx + r8*8 + 0x28]
lea r8d, [rdi - 1]
mov r10d, dword [rcx - 0x30]
sub r10d, dword [rcx - 0x34]
inc r10d
movsxd rcx, r8d
test r8d, r8d
js 0x1402f7bd3
mov rdx, rcx
shl rdx, 4
add rdx, 0x24
add rdx, rbx
cmp dword [rdx], 0
jne 0x1402f7bd3
dec r8d
sub rdx, 0x10
sub rcx, 1
jns 0x1402f7bc1
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], r12
test r8d, r8d
js 0x1402f7db0
xor r12d, r12d
movsxd rdx, r8d
add rdx, 2
mov r11d, r12d
add rdx, rdx
movsxd r9, dword [rbx + rdx*8 + 4]
test r9d, r9d
jle 0x1402f7d6d
cmp r9d, 8
jb 0x1402f7d6d
cmp dword [reloc.SinoSPE.dll_Ordinal_1], 2
jl 0x1402f7d6d
mov rsi, qword [rbx + rdx*8 + 8]
mov ecx, r9d
movaps xmmword [rsp + 0x30], xmm6
xorps xmm5, xmm5
movaps xmmword [rsp + 0x20], xmm7
xorps xmm6, xmm6
and ecx, 0x80000007
jge 0x1402f7c42
dec ecx
or ecx, 0xfffffff8
inc ecx
movdqa xmm7, xmmword [0x140453100]
mov eax, r9d
sub eax, ecx
movsxd rcx, eax
lea rax, [rsi + 0x74]
nop word [rax + rax]
movd xmm1, dword [rax + 0x38]
movdqa xmm4, xmm7
movd xmm0, dword [rax - 0x38]
add r11d, 8
movd xmm2, dword [rax]
add r12, 8
movd xmm3, dword [rax - 0x70]
lea rax, [rax + 0x1c0]
punpckldq xmm3, xmm0
movd xmm0, dword [rax - 0x1f4]
punpckldq xmm2, xmm1
movd xmm1, dword [rax - 0x184]
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0x1bc]
psubd xmm4, xmm3
movd xmm3, dword [rax - 0x22c]
punpckldq xmm3, xmm0
movd xmm0, dword [rax - 0x118]
punpckldq xmm2, xmm1
movd xmm1, dword [rax - 0xa8]
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0xe0]
paddd xmm4, xmm3
movd xmm3, dword [rax - 0x150]
pmaxsd xmm5, xmm4
punpckldq xmm3, xmm0
movdqa xmm4, xmm7
movd xmm0, dword [rax - 0x114]
punpckldq xmm2, xmm1
movd xmm1, dword [rax - 0xa4]
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0xdc]
psubd xmm4, xmm3
movd xmm3, dword [rax - 0x14c]
punpckldq xmm3, xmm0
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
paddd xmm4, xmm3
pmaxsd xmm6, xmm4
cmp r12, rcx
jl 0x1402f7c60
movaps xmm7, xmmword [rsp + 0x20]
pmaxsd xmm5, xmm6
movaps xmm6, xmmword [rsp + 0x30]
movdqa xmm0, xmm5
psrldq xmm0, 8
pmaxsd xmm5, xmm0
movdqa xmm0, xmm5
psrldq xmm0, 4
pmaxsd xmm5, xmm0
movd r12d, xmm5
movsxd r11, r11d
cmp r11, r9
jge 0x1402f7dab
mov rdx, qword [rbx + rdx*8 + 8]
imul rax, r11, 0x38
add rdx, 4
add rdx, rax
sub r9, r11
nop dword [rax + rax]
mov eax, dword [rdx + 4]
sub eax, dword [rdx]
lea rdx, [rdx + 0x38]
inc eax
cmp eax, r12d
cmovle eax, r12d
mov r12d, eax
sub r9, 1
jne 0x1402f7d90
cmp r12d, r10d
jge 0x1402f7db6
mov r8d, edi
mov r12d, r10d
movsxd rdi, r8d
add rdi, 2
shl rdi, 4
add rdi, rbx
cmp dword [rdi], 0
jne 0x1402f7f1d
lea ecx, [r8 + 1]
mov dword [rsp + 0x80], ecx
cmp ecx, dword [rbx + 0x1c]
jge 0x1402f7f1d
mov qword [rsp + 0x88], rbp
movsxd rsi, ecx
shl rsi, 4
add rsi, 0x24
mov qword [rsp + 0x48], r13
add rsi, rbx
mov qword [rsp + 0x40], r14
cmp dword [rsi - 4], 0
jne 0x1402f7f0b
mov eax, dword [rsi]
sub eax, 1
movsxd r14, eax
js 0x1402f7ef5
imul rbp, r14, 0x38
nop dword [rax]
mov rax, qword [rsi + 4]
mov ecx, dword [rax + rbp + 8]
sub ecx, dword [rax + rbp + 4]
cmp ecx, r12d
jge 0x1402f7f0b
cmp dword [r15 + 0x3c], 0
jne 0x1402f7f0b
mov eax, dword [rdi + 4]
mov r13, qword [rdi + 8]
inc eax
cdqe
imul rbx, rax, 0x38
call fcn.1403a2170
test eax, eax
jne 0x1402f7e98
mov rdx, rbx
mov rcx, r13
call fcn.140376810
mov rbx, rax
test rax, rax
je 0x1402f7e98
imul eax, dword [rdi + 4], 0x38
lea rcx, [rbx + 0x38]
mov rdx, rbx
movsxd r8, eax
call sub.VCRUNTIME140.dll_memmove
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm0
movups xmmword [rbx + 0x20], xmm0
mov qword [rbx + 0x30], rax
mov qword [rdi + 8], rbx
jmp 0x1402f7ea0
mov dword [r15 + 0x3c], 7
cmp dword [r15 + 0x3c], 0
jne 0x1402f7f0b
mov rax, qword [rsi + 4]
mov rcx, qword [rdi + 8]
movups xmm0, xmmword [rax + rbp]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + rbp + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + rbp + 0x20]
movups xmmword [rcx + 0x20], xmm0
movsd xmm1, qword [rax + rbp + 0x30]
sub rbp, 0x38
movsd qword [rcx + 0x30], xmm1
inc dword [rdi + 4]
dec dword [rsi]
sub r14, 1
jns 0x1402f7e20
mov ecx, dword [rsp + 0x80]
mov rbx, qword [rsp + 0x90]
inc ecx
add rsi, 0x10
mov dword [rsp + 0x80], ecx
cmp ecx, dword [rbx + 0x1c]
jl 0x1402f7e01
mov r13, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x88]
mov r14, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x58]
mov r12, qword [rsp + 0x50]
add rsp, 0x60
pop r15
pop rdi
pop rbx
ret