Function at 0x180029e6c
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 [0x180053aa0]
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 0x180029ed3
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.180016c68
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 0x180029f41
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 0x18002a500
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 0x18002a198
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 0x180029fbb
movzx eax, word [r8 + rdx + 0x5e]
jmp 0x180029fc1
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 0x18002a007
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 0x18002a007
cmp qword [r10 + r11 + 0x28], rdi
jne 0x18002a007
mov dword [rbx], r9d
mov eax, r9d
cmp eax, 1
jne 0x18002a179
test dword [r8 + rdx], 0x100
jne 0x18002a058
test r13w, r13w
jg 0x18002a030
movss xmm0, dword [r8 + rdx + 0x48]
maxss xmm0, dword [r8 + rdx + 0x44]
jmp 0x18002a04c
test r15d, r15d
jne 0x18002a045
movss xmm0, dword [r8 + rdx + 0x48]
maxss xmm0, dword [r8 + rdx + 0x40]
jmp 0x18002a04c
movss xmm0, dword [r8 + rdx + 0x44]
comiss xmm0, dword [r8 + rdx + 0x28]
ja 0x18002a179
cmp word [rsp + 0x148], di
jle 0x18002a077
movsx eax, word [rsi + 0x220]
cmp r12d, eax
jge 0x18002a077
mov ecx, edi
lea r10, [rsp + 0x70]
jmp 0x18002a084
mov ecx, 1
lea r10, [rsp + 0x90]
test r13w, r13w
jle 0x18002a096
test r15d, r15d
jne 0x18002a096
mov eax, edi
mov r9, rdi
jmp 0x18002a09f
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 0x18002a0d4
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 0x18002a131
movss dword [r10 + r9], xmm3
comiss xmm0, dword [r11 + 4]
jae 0x18002a13e
movss dword [r11 + 4], xmm0
comiss xmm1, dword [rdi + 8]
jbe 0x18002a149
movss dword [rdi + 8], xmm1
comiss xmm2, dword [r14 + 0xc]
jbe 0x18002a156
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 0x180029fae
mov eax, 0xffff
mov r15d, 1
mov word [r8 + rdx + 0x5c], ax
add r12d, r15d
add r8, 0x70
cmp r12d, dword [rsi + 0x6c]
jl 0x180029f73
test r14d, r14d
je 0x18002a500
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 0x18002a1ef
test ecx, ecx
je 0x18002a1db
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18002a1e0
mov eax, 8
cmp eax, ebx
mov edx, ebx
mov rcx, rdi
cmovg edx, eax
call fcn.180024098
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 0x18002a267
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 0x18002a21a
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 0x18002a437
movups xmm0, xmmword [rbx - 0x18]
mov eax, r10d
movdqu xmmword [rsp + 0x20], xmm0
and eax, 1
je 0x18002a2e7
test r12w, r12w
jle 0x18002a2e7
movss xmm5, dword [rsp + 0x20]
jmp 0x18002a2fa
movss xmm5, dword [rsp + 0x20]
comiss xmm5, dword [rsp + 0x30]
jb 0x18002a2fa
movss xmm5, dword [rsp + 0x30]
mov ecx, r10d
and ecx, 2
je 0x18002a310
test r13w, r13w
jle 0x18002a310
movss xmm4, dword [rsp + 0x24]
jmp 0x18002a323
movss xmm4, dword [rsp + 0x24]
comiss xmm4, dword [rsp + 0x34]
jb 0x18002a323
movss xmm4, dword [rsp + 0x34]
movss xmm3, dword [rsp + 0x28]
test eax, eax
je 0x18002a33a
comiss xmm3, dword [rsp + 0x38]
jae 0x18002a33a
movss xmm3, dword [rsp + 0x38]
test ecx, ecx
je 0x18002a35c
test dword [rsi + 4], 0x20000
jne 0x18002a35c
movss xmm2, dword [rsp + 0x2c]
comiss xmm2, dword [rsp + 0x3c]
jae 0x18002a362
movss xmm2, dword [rsp + 0x3c]
jmp 0x18002a362
movss xmm2, dword [rsp + 0x2c]
mov rcx, qword [rsp + 0x68]
sub r9d, r15d
sar rcx, 2
test rcx, rcx
jle 0x18002a38e
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 0x18002a37c
mov edx, r11d
cmp dword [rbp + 4], r11d
jle 0x18002a437
xor r12d, r12d
mov r8d, r12d
lea r13d, [r12 + 0x1f]
test r15d, r15d
je 0x18002a41d
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 0x18002a412
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 0x18002a3a6
mov r14, qword [rsp + 0x48]
xor r11d, r11d
movzx r13d, word [rsp + 0x140]
movzx r12d, word [rsp + 0x148]
cmp r10d, 1
jne 0x18002a469
test r13w, r13w
jle 0x18002a469
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 0x18002a2ba
mov eax, dword [rbp + 4]
mov edx, r11d
mov r12, qword [rsp + 0x50]
test eax, eax
jle 0x18002a4e1
mov r8, r11
mov r12d, 0x1f
test r9d, r9d
je 0x18002a4dc
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 0x18002a4cf
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 0x18002a492
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