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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf8
movzx eax, word [rcx + 0x220]
xor edx, edx
mov rbp, qword [rcx + 0x198]
mov rsi, rcx
movzx r13d, word [rcx + 0x21c]
mov r14d, edx
mov r15, qword [0x180052720]
lea r12d, [rdx + 4]
mov word [rsp + 0x148], ax
mov ecx, r12d
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x30], rbp
lea rax, [rsp + 0x74]
mov word [rsp + 0x140], r13w
mov dword [rsp + 0x150], edx
mov qword [rax - 4], rdx
mov qword [rax + 4], rdx
mov dword [rax + 0xc], edx
mov qword [rax + 0x14], rdx
lea rax, [rax + 0x20]
sub rcx, 1
jne 0x180029e77
mov eax, dword [rsi + 0x6c]
lea rcx, [r15 + 0x3168]
lea edi, [rax*2 + 0x23]
sar edi, 3
and edi, 0xfffffffc
lea ebx, [rdi + rdi*4]
mov edx, ebx
call fcn.180016c7c
mov rcx, qword [r15 + 0x3170]
xor edx, edx
movsxd r8, ebx
call sub.VCRUNTIME140.dll_memset
mov r8, qword [r15 + 0x3170]
lea rax, [rsp + 0x88]
movsxd r9, edi
mov rcx, r8
mov qword [rsp + 0x68], r9
mov rdx, r12
mov r15d, 1
mov qword [rax], rcx
add rcx, r9
lea rax, [rax + 0x20]
sub rdx, r15
jne 0x180029ee5
lea eax, [rdi*4]
xor edi, edi
movsxd rcx, eax
mov r12d, edi
add rcx, r8
mov qword [rsp + 0x48], rcx
cmp dword [rsi + 0x6c], edi
jle 0x18002a4a4
mov r8d, edi
mov ecx, 0x1f
mov eax, r12d
and eax, ecx
movsxd rcx, r12d
movzx edx, al
mov rax, qword [rsi + 0x58]
sar rcx, 5
mov ecx, dword [rax + rcx*4]
bt ecx, edx
jae 0x18002a13c
mov rdx, qword [rsi + 0x18]
test r13w, r13w
mov eax, edi
setg al
add eax, r15d
mov r15d, edi
mov dword [rsp + 0x44], eax
test r15d, r15d
jne 0x180029f5f
movzx eax, word [r8 + rdx + 0x5e]
jmp 0x180029f65
movzx eax, word [r8 + rdx + 0x60]
movzx eax, ax
mov ebx, eax
mov dword [rsp + 0x158], eax
shl rbx, 5
add rbx, qword [rbp + 0x10]
mov qword [rsp + 0x20], rax
mov ecx, dword [rbx]
mov eax, ecx
test ecx, ecx
jle 0x180029fab
mov r11, qword [rbx + 8]
lea r9d, [rcx - 1]
movsxd rax, r9d
imul r10, rax, 0x38
mov eax, ecx
cmp dword [r10 + r11 + 0x20], edi
jne 0x180029fab
cmp qword [r10 + r11 + 0x28], rdi
jne 0x180029fab
mov dword [rbx], r9d
mov eax, r9d
cmp eax, 1
jne 0x18002a11d
test dword [r8 + rdx], 0x100
jne 0x180029ffc
test r13w, r13w
jg 0x180029fd4
movss xmm0, dword [r8 + rdx + 0x48]
maxss xmm0, dword [r8 + rdx + 0x44]
jmp 0x180029ff0
test r15d, r15d
jne 0x180029fe9
movss xmm0, dword [r8 + rdx + 0x48]
maxss xmm0, dword [r8 + rdx + 0x40]
jmp 0x180029ff0
movss xmm0, dword [r8 + rdx + 0x44]
comiss xmm0, dword [r8 + rdx + 0x28]
ja 0x18002a11d
cmp word [rsp + 0x148], di
jle 0x18002a01b
movsx eax, word [rsi + 0x220]
cmp r12d, eax
jge 0x18002a01b
mov ecx, edi
lea r10, [rsp + 0x70]
jmp 0x18002a028
mov ecx, 1
lea r10, [rsp + 0x90]
test r13w, r13w
jle 0x18002a03a
test r15d, r15d
jne 0x18002a03a
mov eax, edi
mov r9, rdi
jmp 0x18002a043
mov eax, 2
lea r9d, [rax + 0x3e]
mov r13d, dword [r10 + r9 + 0x10]
lea r11, [r10 + r9]
add eax, ecx
lea rdi, [r10 + r9]
mov dword [rsp + 0x40], eax
lea r14, [r10 + r9]
test r13d, r13d
jne 0x18002a078
mov eax, 0x7f7fffff
mov dword [r10 + r9], eax
mov dword [r11 + 4], eax
mov eax, 0xff7fffff
mov dword [rdi + 8], eax
mov dword [r14 + 0xc], eax
mov rax, qword [rsp + 0x20]
mov rcx, qword [r10 + r9 + 0x18]
mov ebp, dword [rsp + 0x158]
shr rax, 5
and ebp, 0x1f
mov qword [rsp + 0x20], rax
mov eax, dword [rcx + rax*4]
bts eax, ebp
mov rbp, qword [rsp + 0x20]
mov dword [rcx + rbp*4], eax
lea eax, [r13 + 1]
mov rbp, qword [rsp + 0x30]
mov dword [r10 + r9 + 0x10], eax
mov rax, qword [rbx + 8]
movss xmm3, dword [rax]
comiss xmm3, dword [r10 + r9]
movss xmm0, dword [rax + 4]
movss xmm1, dword [rax + 8]
movss xmm2, dword [rax + 0xc]
jae 0x18002a0d5
movss dword [r10 + r9], xmm3
comiss xmm0, dword [r11 + 4]
jae 0x18002a0e2
movss dword [r11 + 4], xmm0
comiss xmm1, dword [rdi + 8]
jbe 0x18002a0ed
movss dword [rdi + 8], xmm1
comiss xmm2, dword [r14 + 0xc]
jbe 0x18002a0fa
movss dword [r14 + 0xc], xmm2
mov r14d, dword [rsp + 0x150]
mov eax, dword [rsp + 0x40]
bts r14d, eax
movzx r13d, word [rsp + 0x140]
xor edi, edi
mov dword [rsp + 0x150], r14d
inc r15d
cmp r15d, dword [rsp + 0x44]
jl 0x180029f52
mov eax, 0xffff
mov r15d, 1
mov word [r8 + rdx + 0x5c], ax
add r12d, r15d
add r8, 0x70
cmp r12d, dword [rsi + 0x6c]
jl 0x180029f17
test r14d, r14d
je 0x18002a4a4
mov r12, qword [rsp + 0x50]
mov ebx, dword [rbp + 4]
sub ebx, 2
lea rdi, [r12 + 0x1ea0]
mov ecx, dword [rdi + 4]
cmp ebx, ecx
jle 0x18002a193
test ecx, ecx
je 0x18002a17f
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18002a184
mov eax, 8
cmp eax, ebx
mov edx, ebx
mov rcx, rdi
cmovg edx, eax
call fcn.1800240ac
mov r14, qword [rsp + 0x48]
mov r11d, 2
mov dword [rdi], ebx
mov r10d, dword [rbp + 4]
mov rdi, qword [r12 + 0x1ea8]
sub r10d, r15d
cmp r10d, r11d
jl 0x18002a20b
mov ebx, r10d
lea r13d, [r11 + 0x1d]
and ebx, r13d
movsxd r9, r11d
mov eax, r11d
sar r9, 5
or eax, r13d
cmp r10d, eax
mov ecx, ebx
mov r8, r15
mov rdx, r15
cmovg ecx, r13d
add ecx, r15d
shl r8, cl
mov ecx, r11d
and ecx, r13d
sub r8d, r15d
shl rdx, cl
add r11d, 0x20
neg edx
and r11d, 0xffffffe0
and r8d, edx
or dword [r14 + r9*4], r8d
cmp r11d, r10d
jle 0x18002a1be
movzx r13d, word [rsp + 0x140]
movzx ecx, word [rsi + 0x228]
lea rbx, [rsp + 0x88]
movzx r12d, word [rsp + 0x148]
xor r11d, r11d
mov edx, ecx
mov r10d, r11d
shr rdx, 5
and ecx, 0x1f
mov eax, dword [r14 + rdx*4]
btr eax, ecx
mov dword [r14 + rdx*4], eax
test r13w, r13w
movups xmm0, xmmword [rsi + 0x158]
mov r9d, dword [rbp + 4]
mov eax, r11d
setg al
add eax, 2
sub r9d, eax
movdqu xmmword [rsp + 0x30], xmm0
mov r15d, dword [rbx - 8]
test r15d, r15d
je 0x18002a3db
movups xmm0, xmmword [rbx - 0x18]
mov eax, r10d
movdqu xmmword [rsp + 0x20], xmm0
and eax, 1
je 0x18002a28b
test r12w, r12w
jle 0x18002a28b
movss xmm5, dword [rsp + 0x20]
jmp 0x18002a29e
movss xmm5, dword [rsp + 0x20]
comiss xmm5, dword [rsp + 0x30]
jb 0x18002a29e
movss xmm5, dword [rsp + 0x30]
mov ecx, r10d
and ecx, 2
je 0x18002a2b4
test r13w, r13w
jle 0x18002a2b4
movss xmm4, dword [rsp + 0x24]
jmp 0x18002a2c7
movss xmm4, dword [rsp + 0x24]
comiss xmm4, dword [rsp + 0x34]
jb 0x18002a2c7
movss xmm4, dword [rsp + 0x34]
movss xmm3, dword [rsp + 0x28]
test eax, eax
je 0x18002a2de
comiss xmm3, dword [rsp + 0x38]
jae 0x18002a2de
movss xmm3, dword [rsp + 0x38]
test ecx, ecx
je 0x18002a300
test dword [rsi + 4], 0x20000
jne 0x18002a300
movss xmm2, dword [rsp + 0x2c]
comiss xmm2, dword [rsp + 0x3c]
jae 0x18002a306
movss xmm2, dword [rsp + 0x3c]
jmp 0x18002a306
movss xmm2, dword [rsp + 0x2c]
mov rcx, qword [rsp + 0x68]
sub r9d, r15d
sar rcx, 2
test rcx, rcx
jle 0x18002a332
mov r8, qword [rbx]
mov rdx, r14
sub r8, r14
mov eax, dword [r8 + rdx]
not eax
and dword [rdx], eax
lea rdx, [rdx + 4]
sub rcx, 1
jne 0x18002a320
mov edx, r11d
cmp dword [rbp + 4], r11d
jle 0x18002a3db
xor r12d, r12d
mov r8d, r12d
lea r13d, [r12 + 0x1f]
test r15d, r15d
je 0x18002a3c1
mov r14, qword [rbx]
mov ecx, edx
movsxd rax, edx
and ecx, r13d
sar rax, 5
mov r11d, dword [r14 + rax*4]
bt r11d, ecx
jae 0x18002a3b6
btr r11d, ecx
movss dword [rsp + 0x58], xmm5
mov dword [r14 + rax*4], r11d
dec r15d
mov rcx, qword [rbp + 0x10]
movss dword [rsp + 0x5c], xmm4
movss dword [rsp + 0x60], xmm3
movss dword [rsp + 0x64], xmm2
mov rax, qword [r8 + rcx + 8]
movups xmm0, xmmword [rsp + 0x58]
movdqu xmmword [rax], xmm0
mov rax, rdi
add rdi, 0x20
movups xmm0, xmmword [r8 + rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [r8 + rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
inc edx
add r8, 0x20
cmp edx, dword [rbp + 4]
jl 0x18002a34a
mov r14, qword [rsp + 0x48]
xor r11d, r11d
movzx r13d, word [rsp + 0x140]
movzx r12d, word [rsp + 0x148]
cmp r10d, 1
jne 0x18002a40d
test r13w, r13w
jle 0x18002a40d
mov rax, qword [rbp + 0x10]
mov rdx, rdi
movzx ecx, word [rsi + 0x228]
add rdi, 0x20
shl rcx, 5
movups xmm0, xmmword [rcx + rax]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rcx + rax + 0x10]
movups xmmword [rdx + 0x10], xmm1
inc r10d
add rbx, 0x20
cmp r10d, 4
jl 0x18002a25e
mov eax, dword [rbp + 4]
mov edx, r11d
mov r12, qword [rsp + 0x50]
test eax, eax
jle 0x18002a485
mov r8, r11
mov r12d, 0x1f
test r9d, r9d
je 0x18002a480
mov eax, edx
and eax, r12d
movzx ecx, al
movsxd rax, edx
sar rax, 5
mov eax, dword [r14 + rax*4]
bt eax, ecx
jae 0x18002a473
mov rax, qword [rbp + 0x10]
mov rcx, rdi
add rdi, 0x20
dec r9d
movups xmm0, xmmword [rax + r8]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + r8 + 0x10]
movups xmmword [rcx + 0x10], xmm1
mov eax, dword [rbp + 4]
inc edx
add r8, 0x20
cmp edx, eax
jl 0x18002a436
mov r12, qword [rsp + 0x50]
mov rcx, qword [rbp + 0x10]
add eax, 0xfffffffe
mov rdx, qword [r12 + 0x1ea8]
add rcx, 0x40
movsxd r8, eax
shl r8, 5
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret