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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
mov r14d, r9d
mov dword [rsp + 0x30], r8d
mov esi, edx
mov dword [rsp + 0x34], edx
mov qword [rsp + 0x78], rcx
mov r15, qword [0x1800a3030]
mov qword [rbp - 0x10], r15
mov rax, qword [r15 + 0x3ea0]
mov byte [rax + 0xb0], 1
mov r10, qword [r15 + 0x3ea0]
mov qword [rsp + 0x40], r10
xor r12d, r12d
cmp byte [r10 + 0xb3], r12b
je 0x180051283
xor al, al
jmp 0x1800524be
mov r13d, r14d
lea rcx, [rsp + 0x38]
call fcn.180012bcc
xorps xmm9, xmm9
movss xmm13, dword [0x180097134]
and r13d, 0x3000000
je 0x1800512b3
movss xmm3, dword [rsp + 0x3c]
maxss xmm3, xmm13
jmp 0x1800512b6
xorps xmm3, xmm3
movss xmm2, dword [rsp + 0x38]
maxss xmm2, xmm13
mov rdx, qword [rbp + 0xe0]
mov rdx, qword [rdx]
lea rcx, [rsp + 0x38]
call fcn.180012a80
movss xmm12, dword [r10 + 0xfc]
movss xmm6, dword [rsp + 0x3c]
addss xmm6, xmm12
movss xmm11, dword [r10 + 0xf8]
movss xmm7, dword [rsp + 0x38]
addss xmm7, xmm11
movss dword [rsp + 0x68], xmm11
movss dword [rsp + 0x6c], xmm12
movss dword [rsp + 0x70], xmm7
movss dword [rsp + 0x74], xmm6
test r13d, r13d
je 0x180051357
lea rcx, [rsp + 0x68]
call fcn.180007bfc
test al, al
je 0x180051357
subss xmm7, xmm11
movss dword [rsp + 0x38], xmm7
subss xmm6, xmm12
movss dword [rsp + 0x3c], xmm6
movss xmm1, dword [0x180097300]
lea rcx, [rsp + 0x38]
call fcn.1800122e8
jmp 0x18005127c
lea rdi, [r15 + 0x4b08]
lea rcx, [rdi + 0x10]
mov edx, esi
call fcn.180003aec
mov rcx, rax
or rax, 0xffffffffffffffff
cmp dword [rcx], eax
je 0x180051384
movsxd rax, dword [rcx]
imul rbx, rax, 0x228
add rbx, qword [rdi + 8]
jmp 0x180051394
mov eax, dword [rdi + 0x20]
mov dword [rcx], eax
mov rcx, rdi
call fcn.180059218
mov rbx, rax
lea r10, [rbx + 0x80]
mov qword [rsp + 0x38], r10
mov ecx, dword [r15 + 0x3e20]
cmp dword [rbx + 0x70], ecx
jne 0x1800513b8
movsx r12d, word [r10]
inc r12d
mov qword [rsp + 0x38], r10
mov dword [rsp + 0x48], r12d
lea eax, [rsi + r12]
mov dword [rsp + 0x58], eax
mov eax, dword [rbx + 4]
mov dword [rsp + 0x60], eax
mov rcx, rbx
sub rcx, qword [r15 + 0x4b10]
movabs rax, 0x76b981dae6076b99
imul rcx
mov rsi, rdx
sar rsi, 8
mov rax, rsi
shr rax, 0x3f
add rsi, rax
mov qword [rsp + 0x50], rsi
mov edi, dword [r15 + 0x4af0]
inc edi
mov dword [r15 + 0x4af0], edi
cmp edi, dword [r15 + 0x4af8]
jle 0x18005158b
xor edx, edx
lea r8d, [rdx + 0x70]
lea rcx, [rbp - 0x80]
call sub.VCRUNTIME140.dll_memset
mov dword [rbp - 0x7c], 0xbf800000
mov ecx, dword [r15 + 0x4afc]
cmp edi, ecx
jle 0x1800514de
test ecx, ecx
je 0x18005144a
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18005144f
mov eax, 8
mov esi, edi
cmp eax, edi
cmovg esi, eax
cmp esi, ecx
jle 0x1800514d9
mov rax, qword [0x1800a3030]
test rax, rax
je 0x180051473
mov r8d, 1
add dword [rax + 0xf4], r8d
movsxd rax, esi
imul rcx, rax, 0x70
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r12, rax
mov rdx, qword [r15 + 0x4b00]
test rdx, rdx
je 0x1800514c6
movsxd rcx, dword [r15 + 0x4af8]
imul r8, rcx, 0x70
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [r15 + 0x4b00]
test rcx, rcx
je 0x1800514c0
mov rax, qword [0x1800a3030]
test rax, rax
je 0x1800514c0
dec dword [rax + 0xf4]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [r15 + 0x4b00], r12
mov dword [r15 + 0x4afc], esi
mov r12d, dword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
movsxd rax, dword [r15 + 0x4af8]
cmp edi, eax
jle 0x180051553
movsxd rdx, edi
cmp rax, rdx
jge 0x180051553
imul rcx, rax, 0x70
sub rdx, rax
movups xmm0, xmmword [rbp - 0x20]
movups xmm1, xmmword [rbp - 0x30]
movups xmm2, xmmword [rbp - 0x40]
movups xmm3, xmmword [rbp - 0x50]
movups xmm4, xmmword [rbp - 0x60]
movups xmm5, xmmword [rbp - 0x70]
movups xmm8, xmmword [rbp - 0x80]
mov r12d, 1
mov rax, qword [r15 + 0x4b00]
movups xmmword [rcx + rax], xmm8
movups xmmword [rcx + rax + 0x10], xmm5
movups xmmword [rcx + rax + 0x20], xmm4
movups xmmword [rcx + rax + 0x30], xmm3
movups xmmword [rcx + rax + 0x40], xmm2
movups xmmword [rcx + rax + 0x50], xmm1
movups xmmword [rcx + rax + 0x60], xmm0
lea rcx, [rcx + 0x70]
sub rdx, r12
jne 0x18005151b
mov r12d, dword [rsp + 0x48]
mov dword [r15 + 0x4af8], edi
lea rcx, [rbp - 0x70]
call fcn.180045308
nop
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x180051586
mov rax, qword [0x1800a3030]
test rax, rax
je 0x18005157f
dec dword [rax + 0xf4]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov r10, qword [rsp + 0x38]
movsxd rax, dword [r15 + 0x4af0]
imul rcx, rax, 0x70
mov r9, qword [r15 + 0x4b00]
add r9, 0xffffffffffffff90
add r9, rcx
mov qword [rsp + 0x48], r9
mov qword [rbx + 0x10], r9
mov dword [r9], esi
mov rax, qword [rbx + 0x10]
add rax, 0x10
mov qword [rbx + 0x1a0], rax
xor r11d, r11d
mov dword [rax], r11d
lea edx, [r11 + 1]
mov dword [rax + 4], edx
mov r8d, 0xe000
test r8d, r14d
sete al
mov byte [rbx + 0x21d], al
test r8d, r14d
jne 0x180051602
bt r14d, 0x18
jb 0x1800515fa
mov rax, qword [rsp + 0x40]
test byte [rax + 0xc], 0x40
mov eax, 0x8000
je 0x1800515ff
mov eax, 0x2000
or r14d, eax
mov eax, r14d
and eax, r8d
mov ecx, r14d
bts ecx, 0x12
cmp eax, 0x4000
cmovne ecx, r14d
mov eax, ecx
and al, dl
mov edx, ecx
bts edx, 9
test al, al
cmove edx, ecx
mov r14d, 0x3000000
mov ecx, edx
and ecx, 0xfffcffff
test r14d, edx
cmove ecx, edx
mov edx, ecx
btr edx, 0xb
bt ecx, 0xc
cmovae edx, ecx
mov r8d, edx
or r8d, 0x10
test dl, 0xf
cmovne r8d, edx
mov rdi, qword [rsp + 0x40]
mov rax, qword [rdi + 0x370]
mov esi, r8d
or esi, 0x10
test dword [rax + 0xc], 0x100
cmove esi, r8d
mov eax, dword [rsp + 0x34]
mov dword [rbx], eax
mov dword [rbx + 4], esi
mov word [r10], r12w
mov eax, dword [r15 + 0x3e20]
mov dword [rbx + 0x70], eax
mov qword [rbx + 0x188], rdi
mov qword [rbx + 0x180], rdi
mov eax, dword [rsp + 0x30]
mov dword [rbx + 0x74], eax
mov byte [rbx + 0x211], r11b
movss xmm8, dword [rbp + 0xe8]
movss dword [rbx + 0xd4], xmm8
mov rax, qword [rbp + 0xe0]
movsd xmm0, qword [rax]
movsd qword [r9 + 8], xmm0
test r12d, r12d
jle 0x1800517cf
mov edi, dword [rbx + 0x1b8]
cmp edi, r12d
jge 0x1800517ca
mov ecx, dword [rbx + 0x1bc]
cmp edi, ecx
jne 0x180051799
inc edi
test ecx, ecx
je 0x180051700
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x180051705
mov eax, 8
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x180051799
mov rax, qword [0x1800a3030]
test rax, rax
je 0x18005172b
mov r8d, 1
add dword [rax + 0xf4], r8d
movsxd rax, edi
lea rcx, [rax + rax*2]
shl rcx, 2
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
mov rdx, qword [rbx + 0x1c0]
test rdx, rdx
je 0x180051786
movsxd rcx, dword [rbx + 0x1b8]
lea r8, [rcx + rcx*2]
shl r8, 2
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbx + 0x1c0]
test rcx, rcx
je 0x180051780
mov rax, qword [0x1800a3030]
test rax, rax
je 0x180051780
dec dword [rax + 0xf4]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rbx + 0x1c0], r14
mov dword [rbx + 0x1bc], edi
mov r14d, 0x3000000
movsxd rax, dword [rbx + 0x1b8]
lea rdx, [rax + rax*2]
mov rcx, qword [rbx + 0x1c0]
movaps xmm0, xmm9
unpcklps xmm0, xmm9
movsd qword [rcx + rdx*4], xmm0
movss dword [rcx + rdx*4 + 8], xmm9
mov eax, 1
add dword [rbx + 0x1b8], eax
mov rdi, qword [rsp + 0x40]
movss xmm10, dword [0x1800972d0]
test r13d, r13d
je 0x18005195b
movaps xmm1, xmm10
movaps xmm0, xmm10
mov eax, esi
and eax, r14d
mov edx, 0x1000000
cmp eax, edx
jne 0x1800517ff
movss xmm0, dword [0x180097070]
mov rcx, qword [0x1800a3030]
test edx, esi
je 0x18005181c
comiss xmm8, xmm9
jbe 0x18005181c
movaps xmm1, xmm8
ucomiss xmm8, xmm10
jp 0x180051824
jne 0x180051824
ucomiss xmm0, xmm10
jp 0x180051830
je 0x180051869
ucomiss xmm0, xmm10
jp 0x180051830
jne 0x180051830
movaps xmm0, xmm9
ucomiss xmm1, xmm10
jp 0x18005183c
jne 0x18005183c
movaps xmm1, xmm9
or dword [rcx + 0x4778], 4
cvttss2si eax, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rcx + 0x47a0], xmm1
movss dword [rcx + 0x47a4], xmm0
test dword [rsp + 0x60], r14d
jne 0x180051880
bts dword [rcx + 0x4778], 7
and qword [rcx + 0x47a8], 0
subss xmm7, xmm11
movss dword [rsp + 0x40], xmm7
subss xmm6, xmm12
movss dword [rsp + 0x44], xmm6
mov eax, esi
shr eax, 0xd
and eax, 0x800
mov dword [rsp + 0x20], eax
xor r9d, r9d
lea r8, [rsp + 0x40]
mov r14d, dword [rsp + 0x58]
mov edx, r14d
mov rcx, qword [rsp + 0x78]
call fcn.18000a6ec
mov rax, qword [r15 + 0x3ea0]
mov qword [rbx + 0x188], rax
movups xmm0, xmmword [rax + 0x210]
movdqu xmmword [rbx + 0x110], xmm0
movss xmm2, dword [rax + 0x18]
movss xmm3, dword [rax + 0x1c]
movaps xmm1, xmm2
addss xmm1, dword [rax + 0x20]
movaps xmm0, xmm3
addss xmm0, dword [rax + 0x24]
movss dword [rbx + 0xf0], xmm2
movss dword [rbx + 0xf4], xmm3
movss dword [rbx + 0xf8], xmm1
movss dword [rbx + 0xfc], xmm0
movups xmm0, xmmword [rax + 0x1f0]
movdqu xmmword [rbx + 0x100], xmm0
xor ecx, ecx
test r12d, r12d
jne 0x18005193d
mov al, byte [rbx + 0x21e]
mov byte [rbx + 0x21f], al
mov byte [rbx + 0x21e], cl
mov rax, qword [rbx + 0x188]
movss xmm0, dword [rax + 0x88]
comiss xmm0, xmm9
seta al
or byte [rbx + 0x21e], al
jmp 0x18005197d
movups xmm0, xmmword [rsp + 0x68]
movdqu xmmword [rbx + 0x100], xmm0
movdqu xmmword [rbx + 0xf0], xmm0
movdqu xmmword [rbx + 0x110], xmm0
mov r14d, dword [rsp + 0x58]
mov ecx, r14d
call fcn.18001015c
mov r13, qword [rbx + 0x188]
mov qword [rsp + 0x58], r13
mov eax, dword [r13 + 0x13c]
mov dword [rbx + 0xb8], eax
lea r10, [r13 + 0x230]
movups xmm0, xmmword [r10]
movdqu xmmword [rbx + 0x160], xmm0
mov al, byte [r13 + 0xb3]
mov byte [rbx + 0x221], al
movups xmm0, xmmword [r13 + 0x210]
mov r11, qword [rsp + 0x48]
movdqu xmmword [r11 + 0x28], xmm0
movups xmm1, xmmword [r13 + 0x220]
movdqu xmmword [r11 + 0x38], xmm1
movss xmm0, dword [rdi + 0x140]
movss dword [r11 + 0x60], xmm0
movsd xmm0, qword [r13 + 0x128]
movsd qword [r11 + 0x48], xmm0
movsd xmm0, qword [r13 + 0x120]
movsd qword [r11 + 0x50], xmm0
movsd xmm1, qword [r13 + 0x110]
movsd qword [r11 + 0x58], xmm1
mov eax, dword [rdi + 0x1b4]
mov dword [r11 + 0x64], eax
mov eax, dword [rdi + 0x1c0]
mov dword [r11 + 0x68], eax
xor r14d, r14d
mov qword [r13 + 0x120], r14
mov qword [r13 + 0x128], r14
mov eax, esi
shr eax, 0xa
lea r12d, [r14 + 1]
and al, r12b
movzx ecx, al
bt esi, 0x15
cmovb ecx, r12d
movzx r9d, cl
bt esi, 0x16
cmovb r9d, r14d
mov edx, esi
shr edx, 0x17
not dl
and dl, r12b
mov r8d, esi
and r8d, 0x200
je 0x180051a7e
movaps xmm3, xmm13
jmp 0x180051a82
movaps xmm3, xmm9
test dl, dl
je 0x180051adb
test r8d, r8d
jne 0x180051adb
lea rcx, [r15 + 0x383c]
movss xmm1, dword [rcx]
movaps xmm2, xmm9
movaps xmm0, xmm1
addss xmm0, xmm3
movss dword [rbx + 0xcc], xmm0
movss dword [rbx + 0xd0], xmm1
movss dword [rbx + 0xc4], xmm2
mov eax, dword [r15 + 0x3840]
mov dword [rbx + 0xc8], eax
bt esi, 0xa
jb 0x180051ad0
movaps xmm13, xmm9
test r9b, r9b
je 0x180051af8
movss xmm0, dword [rcx]
jmp 0x180051afc
movaps xmm1, xmm9
lea rax, [r15 + 0x383c]
mov rcx, rax
test dl, dl
je 0x180051a96
test r8d, r8d
je 0x180051a96
movss xmm2, dword [rax]
jmp 0x180051a9a
movaps xmm0, xmm9
addss xmm0, xmm13
subss xmm0, xmm2
movss dword [rbx + 0xc0], xmm0
or rax, 0xffffffffffffffff
mov dword [rbx + 0x7c], eax
mov dword [rbx + 0x78], eax
mov dword [rbx + 0x9c], r14d
mov word [rbx + 0x9a], r14w
lea rax, [rbx + 0x110]
cmp r13, rdi
cmove r10, rax
movups xmm0, xmmword [r10]
movdqu xmmword [rbx + 0x120], xmm0
movss xmm3, dword [rbx + 0x120]
maxss xmm3, dword [rax]
movss xmm4, dword [rbx + 0x124]
maxss xmm4, dword [rax + 4]
movss dword [rbx + 0x120], xmm3
movss dword [rbx + 0x124], xmm4
movss xmm1, dword [rbx + 0x128]
minss xmm1, dword [rax + 8]
movss xmm0, dword [rbx + 0x12c]
minss xmm0, dword [rax + 0xc]
movss dword [rbx + 0x128], xmm1
movss dword [rbx + 0x12c], xmm0
movss xmm2, dword [rbx + 0x168]
movss xmm1, dword [rbx + 0x164]
comiss xmm1, xmm4
ja 0x180051bb4
movss xmm1, dword [rbx + 0x16c]
minss xmm1, xmm4
movss xmm0, dword [rbx + 0x160]
comiss xmm0, xmm3
jbe 0x180051bc6
movaps xmm2, xmm0
jmp 0x180051bca
minss xmm2, xmm3
movss dword [rbx + 0x120], xmm2
movss dword [rbx + 0x124], xmm1
movss xmm2, dword [rbx + 0x12c]
movss xmm1, dword [rbx + 0x164]
comiss xmm1, xmm2
ja 0x180051bfb
movss xmm1, dword [rbx + 0x16c]
minss xmm1, xmm2
movss xmm2, dword [rbx + 0x128]
comiss xmm0, xmm2
ja 0x180051c14
movss xmm0, dword [rbx + 0x168]
minss xmm0, xmm2
movss dword [rbx + 0x128], xmm0
movss dword [rbx + 0x12c], xmm1
bt esi, 0x11
jae 0x180051c38
movaps xmm0, xmm1
minss xmm0, dword [r13 + 0x21c]
jmp 0x180051c41
movss xmm0, dword [r13 + 0x23c]
movss dword [rbx + 0x12c], xmm0
movss xmm0, dword [rbx + 0x114]
movss dword [rbx + 0x88], xmm0
movss dword [rbx + 0x84], xmm0
mov dword [rbx + 0x90], r14d
mov dword [rbx + 0x209], r14d
mov r9, r12
mov byte [rbx + 0x21c], r9b
mov byte [rbx + 0x1fb], r14b
mov r14, qword [0x1800a3030]
movdqu xmm0, xmmword [r14 + 0x3b58]
movups xmmword [rsp + 0x68], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [r14 + 0x37e0]
movss dword [rsp + 0x74], xmm0
lea rcx, [rsp + 0x68]
call fcn.18000381c
mov dword [rbx + 0xa8], eax
movdqu xmm0, xmmword [r14 + 0x3b68]
movups xmmword [rsp + 0x68], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [r14 + 0x37e0]
movss dword [rsp + 0x74], xmm0
lea rcx, [rsp + 0x68]
call fcn.18000381c
mov dword [rbx + 0xac], eax
mov qword [r15 + 0x4ae8], rbx
mov r12, qword [rsp + 0x50]
mov dword [rdi + 0x1a8], r12d
cmp r13, rdi
je 0x180051d08
mov dword [r13 + 0x1a8], r12d
test byte [rsp + 0x60], 2
je 0x180051d1c
test sil, 2
jne 0x180051d1c
mov byte [rbx + 0x21b], r9b
lea rdi, [r15 + 0x4b30]
cmp r12d, dword [rdi]
jl 0x180051d95
mov dword [rsp + 0x34], 0xbf800000
lea esi, [r12 + 1]
mov ecx, dword [rdi + 4]
cmp esi, ecx
jle 0x180051d71
test ecx, ecx
je 0x180051d4b
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x180051d50
mov eax, 8
mov edx, esi
cmp eax, esi
cmovg edx, eax
mov rcx, rdi
call fcn.180020c54
mov r14, qword [0x1800a3030]
mov r11, qword [rsp + 0x48]
mov r9d, 1
cmp esi, dword [rdi]
jle 0x180051d93
movsxd rdx, dword [rdi]
movsxd r8, esi
cmp rdx, r8
jge 0x180051d93
mov eax, dword [rsp + 0x34]
mov rcx, qword [rdi + 8]
mov dword [rcx + rdx*4], eax
add rdx, r9
cmp rdx, r8
jl 0x180051d84
mov dword [rdi], esi
movsd xmm0, qword [r15 + 0x3e18]
cvtpd2ps xmm0, xmm0
movsxd rcx, r12d
mov rax, qword [r15 + 0x4b38]
movss dword [rax + rcx*4], xmm0
movsd xmm0, qword [r15 + 0x3e18]
cvtpd2ps xmm0, xmm0
movss dword [r11 + 4], xmm0
xor esi, esi
mov byte [rbx + 0x220], sil
mov r12d, esi
mov qword [rsp + 0x60], rsi
mov rcx, qword [rbx + 0x20]
sub rcx, qword [rbx + 0x18]
movabs rax, 0x4ec4ec4ec4ec4ec5
imul rcx
mov rcx, rdx
sar rcx, 5
mov rax, rcx
shr rax, 0x3f
add rcx, rax
mov qword [rsp + 0x50], rcx
mov r8d, dword [rsp + 0x30]
test ecx, ecx
je 0x180051e1f
cmp ecx, r8d
je 0x180051e1f
mov r12, qword [rbx + 0x18]
mov rax, qword [rbx + 8]
mov qword [rsp + 0x60], rax
mov qword [rbx + 8], rsi
cmp qword [rbx + 8], rsi
jne 0x180051eef
imul eax, r8d, 0x68
mov dword [rsp + 0x34], eax
lea edi, [rax + 3]
and edi, 0xfffffffc
lea esi, [rdi + 3]
add esi, r8d
and esi, 0xfffffffc
lea eax, [r8*8]
add eax, esi
movsxd rcx, eax
mov qword [rsp + 0x78], rcx
movsxd rcx, eax
test r14, r14
je 0x180051e61
add dword [r14 + 0xf4], r9d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rbx + 8], rax
mov r8, qword [rsp + 0x78]
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [rbx + 8]
mov qword [rbx + 0x18], rdx
movsxd rax, dword [rsp + 0x34]
add rax, rdx
mov qword [rbx + 0x20], rax
movsxd rcx, edi
lea rax, [rcx + rdx]
mov qword [rbx + 0x28], rax
lea rax, [rcx + rdx]
movsxd r8, dword [rsp + 0x30]
add rax, r8
mov qword [rbx + 0x30], rax
movsxd rcx, esi
lea rax, [rcx + rdx]
mov qword [rbx + 0x38], rax
lea eax, [r8*8]
cdqe
add rax, rcx
add rax, rdx
mov qword [rbx + 0x40], rax
mov r9d, 1
mov byte [rbx + 0x217], r9b
mov byte [rbx + 0x213], r9b
mov al, r9b
mov r14, qword [0x1800a3030]
mov rcx, qword [rsp + 0x50]
xor esi, esi
jmp 0x180051ef5
mov al, byte [rbx + 0x213]
cmp byte [rbx + 0x21a], sil
je 0x180051f1a
mov word [rbx + 0x217], 0x100
mov byte [rbx + 0x213], r9b
mov byte [rbx + 0x21a], sil
mov dword [rbx + 0x68], esi
jmp 0x180051f22
test al, al
je 0x1800520d1
or r10, 0xffffffffffffffff
mov dword [rbx + 0x6c], r10d
mov byte [rbx + 0x214], r9b
mov word [rbx + 0x82], r10w
mov byte [rbx + 0x208], r10b
mov byte [rbx + 0x200], r10b
mov byte [rbx + 0x1ff], r10b
mov byte [rbx + 0x202], r10b
mov byte [rbx + 0x1fe], r10b
mov byte [rbx + 0x1fd], r10b
mov byte [rbx + 0x1fc], r10b
mov r13d, esi
test r8d, r8d
jle 0x1800520cc
mov rdx, rsi
mov qword [rsp + 0x40], rdx
mov rdi, rsi
or r15, r10
mov rsi, qword [rbx + 0x18]
test r12, r12
je 0x180051fe4
cmp r13d, ecx
jge 0x180051fe4
movups xmm0, xmmword [rdi + r12]
movups xmmword [rdi + rsi], xmm0
movups xmm1, xmmword [rdi + r12 + 0x10]
movups xmmword [rdi + rsi + 0x10], xmm1
movups xmm0, xmmword [rdi + r12 + 0x20]
movups xmmword [rdi + rsi + 0x20], xmm0
movups xmm1, xmmword [rdi + r12 + 0x30]
movups xmmword [rdi + rsi + 0x30], xmm1
movups xmm0, xmmword [rdi + r12 + 0x40]
movups xmmword [rdi + rsi + 0x40], xmm0
movups xmm1, xmmword [rdi + r12 + 0x50]
movups xmmword [rdi + rsi + 0x50], xmm1
movsd xmm0, qword [rdi + r12 + 0x60]
movsd qword [rdi + rsi + 0x60], xmm0
jmp 0x18005209a
movss xmm6, dword [rdi + rsi + 0x14]
xor edx, edx
lea r8d, [rdx + 0x68]
lea rcx, [rbp - 0x80]
call sub.VCRUNTIME140.dll_memset
mov dword [rbp - 0x70], 0xbf800000
mov dword [rbp - 0x68], 0xbf800000
mov word [rbp - 0x30], r15w
mov byte [rbp - 0x2d], r15b
mov byte [rbp - 0x2e], r15b
mov byte [rbp - 0x2b], r15b
mov byte [rbp - 0x2c], r15b
mov byte [rbp - 0x2a], r15b
and byte [rbp - 0x1b], 0xfc
or word [rbp - 0x28], 0xffff
mov byte [rbp - 0x29], 0xff
movups xmm0, xmmword [rbp - 0x80]
movups xmmword [rdi + rsi], xmm0
movups xmm1, xmmword [rbp - 0x70]
movups xmmword [rdi + rsi + 0x10], xmm1
movups xmm0, xmmword [rbp - 0x60]
movups xmmword [rdi + rsi + 0x20], xmm0
movups xmm1, xmmword [rbp - 0x50]
movups xmmword [rdi + rsi + 0x30], xmm1
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rdi + rsi + 0x40], xmm0
movups xmm1, xmmword [rbp - 0x30]
movups xmmword [rdi + rsi + 0x50], xmm1
movsd xmm0, qword [rbp - 0x20]
movsd qword [rdi + rsi + 0x60], xmm0
movss dword [rdi + rsi + 0x14], xmm6
mov r9d, 1
mov byte [rdi + rsi + 0x61], r9b
mov word [rdi + rsi + 0x5b], 0x101
mov byte [rdi + rsi + 0x5a], r9b
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x30]
mov rax, qword [rbx + 0x28]
mov byte [rdx + rax], r13b
mov byte [rdi + rsi + 0x52], r13b
add r13d, r9d
add rdx, r9
mov qword [rsp + 0x40], rdx
add rdi, 0x68
cmp r13d, r8d
jl 0x180051f84
mov r14, qword [0x1800a3030]
mov r15, qword [rbp - 0x10]
xor esi, esi
mov r13, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x1800520fb
test r14, r14
je 0x1800520eb
or rcx, 0xffffffffffffffff
add dword [r14 + 0xf4], ecx
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r14, qword [0x1800a3030]
or r12, 0xffffffffffffffff
cmp byte [rbx + 0x217], sil
je 0x18005227e
mov byte [rbx + 0x217], sil
test byte [rbx + 4], 0x10
jne 0x18005227e
cmp dword [rbx + 0x6c], r12d
jne 0x180052154
mov ecx, dword [rbx]
call fcn.180056df0
mov rdx, rax
test rax, rax
je 0x18005227e
movsx ecx, byte [rax + 0xc]
cmp ecx, dword [rbx + 0x74]
je 0x180052146
mov byte [rbx + 0x218], 1
mov ecx, eax
sub ecx, dword [r14 + 0x5bb0]
mov dword [rbx + 0x6c], ecx
jmp 0x18005216d
movsxd rdx, dword [rbx + 0x6c]
add rdx, qword [r14 + 0x5bb0]
movsx eax, byte [rdx + 0xd]
cmp eax, dword [rbx + 0x74]
jge 0x18005216d
mov dword [rdx], esi
mov rdx, rsi
mov eax, dword [rdx + 4]
mov dword [rbx + 0x68], eax
mov eax, dword [rdx + 8]
mov dword [rbx + 0xec], eax
lea r8, [rdx + 0x10]
mov r9, rsi
mov r11d, esi
mov cl, byte [rdx + 0xc]
mov edi, 1
test cl, cl
jle 0x18005221f
movsx r10, byte [r8 + 8]
mov rax, r10
test r10b, r10b
js 0x18005220b
cmp eax, dword [rbx + 0x74]
jge 0x18005220b
imul rcx, rax, 0x68
add rcx, qword [rbx + 0x18]
test byte [rdx + 4], dil
je 0x1800521d2
movss xmm0, dword [r8]
test byte [r8 + 0xb], 8
je 0x1800521c9
movss dword [rcx + 0x18], xmm0
jmp 0x1800521ce
movss dword [rcx + 0x10], xmm0
mov byte [rcx + 0x63], sil
test byte [rdx + 4], 2
je 0x1800521dc
mov r10b, byte [r8 + 9]
mov byte [rcx + 0x52], r10b
movsx rax, r10b
bts r9, rax
mov al, byte [r8 + 0xb]
shr al, 2
and al, dil
mov byte [rcx + 0x5c], al
mov byte [rcx + 0x5b], al
mov al, byte [r8 + 0xa]
mov byte [rcx + 0x56], al
mov al, byte [rcx + 0x65]
xor al, byte [r8 + 0xb]
and al, 3
xor byte [rcx + 0x65], al
add r11d, edi
add r8, 0xc
movsx ecx, byte [rdx + 0xc]
cmp r11d, ecx
jl 0x180052196
cmp cl, 0x40
jne 0x180052229
mov rax, r12
jmp 0x180052232
mov rax, rdi
shl rax, cl
sub rax, rdi
cmp r9, rax
je 0x180052254
mov edx, esi
cmp dword [rbx + 0x74], esi
jle 0x180052254
movsxd rax, edx
imul rcx, rax, 0x68
mov rax, qword [rbx + 0x18]
mov byte [rcx + rax + 0x52], dl
add edx, edi
cmp edx, dword [rbx + 0x74]
jl 0x18005223e
mov r8d, esi
cmp dword [rbx + 0x74], esi
jle 0x18005227e
movsxd rax, r8d
imul rcx, rax, 0x68
mov rax, qword [rbx + 0x18]
movsx rdx, byte [rcx + rax + 0x52]
mov rax, qword [rbx + 0x28]
mov byte [rdx + rax], r8b
add r8d, edi
cmp r8d, dword [rbx + 0x74]
jl 0x18005225c
movss xmm2, dword [r15 + 0x3c00]
movss xmm0, dword [rbx + 0xec]
ucomiss xmm0, xmm9
jp 0x180052297
je 0x1800522d8
ucomiss xmm0, xmm2
jp 0x18005229e
je 0x1800522d8
movaps xmm1, xmm2
divss xmm1, xmm0
movsxd rax, dword [rsp + 0x30]
mov rdx, rax
mov r8d, 1
test eax, eax
jle 0x1800522de
mov rcx, rsi
mov rax, qword [rbx + 0x18]
movaps xmm0, xmm1
mulss xmm0, dword [rcx + rax + 0x10]
movss dword [rcx + rax + 0x10], xmm0
lea rcx, [rcx + 0x68]
sub rdx, r8
jne 0x1800522ba
jmp 0x1800522de
mov r8d, 1
movss dword [rbx + 0xec], xmm2
mov byte [r13 + 0xb3], r8b
lea rdi, [rbx + 0x190]
cmp dword [rdi], esi
jle 0x180052319
mov ecx, dword [rdi + 4]
test ecx, ecx
jns 0x180052317
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov edx, esi
test eax, eax
cmovg edx, eax
mov rcx, rdi
call fcn.18002083c
mov dword [rdi], esi
mov rdi, qword [rsp + 0x38]
cmp word [rdi], si
jne 0x18005247a
movsx eax, byte [rbx + 0x1ff]
cmp al, r12b
je 0x18005234a
movss xmm1, dword [rbx + 0xe4]
ucomiss xmm1, xmm10
jp 0x180052343
je 0x18005234a
mov ecx, eax
call fcn.180055040
mov al, byte [rbx + 0x1ff]
mov byte [rbx + 0x200], al
mov dword [rbx + 0xe4], 0x7f7fffff
mov byte [rbx + 0x1ff], r12b
movsx rcx, byte [rbx + 0x1fe]
cmp cl, r12b
je 0x18005238e
imul rdx, rcx, 0x68
mov rax, qword [rbx + 0x18]
movss xmm1, dword [rdx + rax + 0x14]
call fcn.180055040
mov byte [rbx + 0x1fe], r12b
cmp word [rdi], si
jne 0x18005247a
cmp byte [rbx + 0x201], r12b
jne 0x1800523b0
cmp byte [rbx + 0x202], r12b
je 0x1800523b0
mov byte [rbx + 0x202], r12b
mov byte [rbx + 0x201], r12b
movsx rax, byte [rbx + 0x202]
cmp al, r12b
je 0x18005247a
movsx r11d, byte [rbx + 0x203]
test r11b, r11b
je 0x18005247a
mov r10, qword [rbx + 0x18]
imul r8, rax, 0x68
add r8, r10
cmp r11d, r12d
jne 0x1800523ef
mov al, byte [r8 + 0x54]
jmp 0x1800523f3
mov al, byte [r8 + 0x55]
movsx edx, byte [r8 + 0x52]
movsx rax, al
imul rcx, rax, 0x68
movsx eax, byte [rcx + r10 + 0x52]
mov byte [r8 + 0x52], al
lea r8d, [rdx + r11]
lea r10d, [r11 + rax]
jmp 0x180052430
movsxd rcx, r8d
mov rax, qword [rbx + 0x28]
movsx rcx, byte [rcx + rax]
imul rdx, rcx, 0x68
mov rax, qword [rbx + 0x18]
sub byte [rdx + rax + 0x52], r11b
add r8d, r11d
cmp r8d, r10d
jne 0x180052414
mov r8d, esi
cmp dword [rbx + 0x74], esi
jle 0x180052466
mov esi, 1
movsxd rax, r8d
imul rcx, rax, 0x68
mov rax, qword [rbx + 0x18]
movsx rdx, byte [rcx + rax + 0x52]
mov rax, qword [rbx + 0x28]
mov byte [rdx + rax], r8b
add r8d, esi
cmp r8d, dword [rbx + 0x74]
jl 0x180052442
xor esi, esi
mov byte [rbx + 0x203], sil
mov eax, 1
mov byte [rbx + 0x218], al
jmp 0x18005247f
mov eax, 1
cmp byte [rbx + 0x21b], sil
je 0x1800524be
mov r9d, esi
cmp dword [rbx + 0x74], esi
jle 0x1800524b1
movsxd r8, r9d
imul rdx, r8, 0x68
mov rcx, qword [rbx + 0x18]
mov byte [rdx + rcx + 0x52], r9b
mov rcx, qword [rbx + 0x28]
mov byte [r8 + rcx], r9b
add r9d, eax
cmp r9d, dword [rbx + 0x74]
jl 0x180052490
mov byte [rbx + 0x21b], sil
mov byte [rbx + 0x218], al
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret