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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2a8
mov eax, dword [0x4b3008]
xor eax, esp
mov dword [esp + 0x2a4], eax
cmp dword [0x7c1e4c], 0
push esi
push edi
mov edi, ecx
mov dword [0x4b3924], 1
mov dword [esp + 0x6c], edi
jne 0x454e7a
call fcn.00437540
lea ecx, [edi + 0x154]
mov dword [edi + 0xc], 0
call fcn.004117f0
mov esi, eax
lea ecx, [edi + 0x154]
mov dword [esp + 0x80], esi
call fcn.004117e0
mov dword [esp + 0x84], eax
xorps xmm0, xmm0
movsd qword [esp + 0x20], xmm0
cmp esi, eax
je 0x454f87
nop dword [eax + eax]
mov esi, dword [esi]
lea ecx, [esi + 0x2454]
call fcn.004117d0
test eax, eax
jne 0x454ee4
lea ecx, [esi + 0x246c]
call fcn.004117d0
test eax, eax
je 0x454f69
mov eax, dword [esi + 0x2450]
test eax, eax
je 0x454f4a
push dword [eax + 8]
mov ecx, edi
call fcn.00438ba0
mov edx, eax
test edx, edx
je 0x454f4a
cmp dword [edx + 0x58], 0
movsd xmm1, qword [esp + 0x20]
jne 0x454f18
mov ecx, dword [esi + 0x2450]
movsd qword [ecx + 0x108], xmm1
cmp dword [edx + 0x58], 1
jne 0x454f2c
mov eax, dword [esi + 0x2450]
movsd qword [eax + 0x118], xmm1
cmp dword [edx + 0x58], 2
jne 0x454f4a
mov eax, dword [esi + 0x2450]
movsd xmm0, qword [eax + 0x108]
movsd qword [esi + 0x28], xmm0
movsd qword [esi + 0x68], xmm1
movsd xmm0, qword [esi + 0x68]
movsd xmm1, qword [esp + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x454f69
movsd qword [esi + 0x28], xmm0
movsd qword [esi + 0x68], xmm1
mov esi, dword [esp + 0x80]
add esi, 4
mov dword [esp + 0x80], esi
cmp esi, dword [esp + 0x84]
jne 0x454ec0
mov ecx, edi
call fcn.0045d660
movsd xmm0, qword [0x4af3c0]
mov ecx, edi
mov dword [esp + 0x68], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x10], 0
mov dword [edi + 0x258], 0
movsd qword [edi + 0x260], xmm0
mov dword [edi + 0x270], 0
call fcn.0045cdf0
mov eax, dword [0x7c1d28]
mov dword [0x4b3930], 8
cmp eax, 1
jne 0x455013
mov dword [0x4b3930], 4
cmp dword [0x7c1e4c], 0
je 0x45502b
cmp eax, 1
je 0x45502b
mov dword [0x4b3930], 0x10
mov ecx, edi
call fcn.0045dde0
movsd xmm0, qword [esp + 0x20]
xor eax, eax
movaps xmm1, xmm0
movsd qword [edi + 0x1b0], xmm0
movsd xmm0, qword [0x4aeef0]
movaps xmm3, xmm0
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [edi + 0x1d8]
lea ecx, [eax + 1]
movsd qword [edi + 0x1d0], xmm0
movsd xmm0, qword [0x4afba0]
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [0x4afb90]
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [0x4ae9b8]
movsd qword [esp + 0xd0], xmm0
movsd xmm0, qword [0x4af1d0]
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [0x4af228]
movsd qword [esp + 0xf0], xmm0
movsd xmm0, qword [0x4af270]
movsd qword [esp + 0xf8], xmm0
movsd xmm0, qword [0x4af380]
movsd qword [esp + 0xd8], xmm0
movsd xmm0, qword [0x4af408]
mov dword [esp + 0x44], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
movsd qword [esp + 0x88], xmm1
mov dword [esp + 0x40], eax
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x100], xmm0
cmp dword [0x7c1d28], 1
mov dword [0x7c1cf0], ecx
jne 0x455383
lea ecx, [edi + 0x100]
call fcn.004117f0
mov esi, eax
lea ecx, [edi + 0x100]
mov dword [esp + 0x1c], esi
call fcn.004117e0
mov dword [esp + 0x14], eax
cmp esi, eax
je 0x4551ed
nop word [eax + eax]
mov esi, dword [esi]
cmp dword [esi + 0x1c], 3
jne 0x4551da
push dword [esi + 8]
mov ecx, edi
call fcn.004389a0
mov dword [esp + 0xc], eax
test eax, eax
je 0x4551d6
mov ecx, esi
call fcn.00466a80
cmp dword [edi + 0x2ac], 0
mov eax, dword [esp + 0xc]
je 0x45519a
comisd xmm0, xmmword [eax + 0x68]
jbe 0x45519a
movsd qword [eax + 0x68], xmm0
movsd xmm0, qword [eax + 0x68]
mov ecx, esi
movsd qword [esi + 0x108], xmm0
call fcn.00467940
cmp dword [0x7c1e4c], 0
jne 0x4551c8
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esi + 0x108]
movsd qword [eax + 0x68], xmm0
movsd xmm0, qword [esp + 0x20]
movsd qword [esi + 0x108], xmm0
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x1c], esi
cmp esi, eax
jne 0x455160
lea ecx, [edi + 0x100]
call fcn.004117f0
mov esi, eax
lea ecx, [edi + 0x100]
mov dword [esp + 0x1c], esi
call fcn.004117e0
mov dword [esp + 0x14], eax
cmp esi, eax
je 0x455377
nop word [eax + eax]
mov esi, dword [esi]
cmp dword [esi + 0x1c], 4
jne 0x455364
push dword [esi + 8]
mov ecx, edi
call fcn.004389a0
mov dword [esp + 0xc], eax
test eax, eax
je 0x455360
cmp dword [edi + 0x2ac], 0
je 0x45526d
mov ecx, esi
call fcn.00466a80
mov eax, dword [esp + 0xc]
comisd xmm0, xmmword [eax + 0x68]
jbe 0x45526d
mov ecx, esi
call fcn.00466a80
mov eax, dword [esp + 0xc]
movsd qword [eax + 0x68], xmm0
movsd xmm0, qword [eax + 0x68]
mov ecx, esi
movsd qword [esi + 0x108], xmm0
call fcn.00467940
mov ecx, esi
call fcn.00466b70
movsd xmm1, qword [esi + 0x25c8]
movsd xmm0, qword [esi + 0x118]
comisd xmm0, xmm1
jbe 0x4552e3
mov ecx, esi
movsd qword [esi + 0x118], xmm1
mov dword [esi + 0x1c], 1
call fcn.00467940
mov eax, dword [esp + 0xc]
movsd xmm1, qword [esi + 0x60]
movsd xmm0, qword [eax + 0x30]
comisd xmm0, xmm1
jbe 0x4552cd
movsd qword [eax + 0x30], xmm1
movsd xmm0, qword [esi + 0x108]
movsd qword [eax + 0x68], xmm0
mov dword [esi + 0x1c], 4
jmp 0x4552e7
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esi + 0x25d0]
comisd xmm0, xmmword [esi + 0x118]
jbe 0x45533c
mov ecx, esi
movsd qword [esi + 0x118], xmm0
mov dword [esi + 0x1c], 1
call fcn.00467940
mov eax, dword [esp + 0xc]
movsd xmm1, qword [esi + 0x60]
movsd xmm0, qword [eax + 0x30]
comisd xmm0, xmm1
jbe 0x455328
movsd qword [eax + 0x30], xmm1
movsd xmm0, qword [esi + 0x108]
movsd qword [eax + 0x68], xmm0
mov dword [esi + 0x1c], 4
cmp dword [0x7c1e4c], 0
jne 0x455352
movsd xmm0, qword [esi + 0x108]
movsd qword [eax + 0x68], xmm0
movsd xmm1, qword [esp + 0x20]
movsd qword [esi + 0x108], xmm1
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x1c], esi
cmp esi, eax
jne 0x455220
movsd xmm3, qword [esp + 0x70]
mov ecx, dword [0x7c1cf0]
movsd xmm0, qword [esp + 0xd0]
comisd xmm0, xmm3
mov dword [edi + 0xc], 0
jbe 0x4553fc
lea ecx, [edi + 0x154]
call fcn.004117f0
lea ecx, [edi + 0x154]
mov esi, eax
call fcn.004117e0
mov ecx, eax
mov dword [esp + 0xc], ecx
cmp esi, ecx
je 0x4553f6
nop dword [eax + eax]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x14]
test edx, edx
jle 0x4553ef
mov eax, dword [edi + 0x1bc]
movsd xmm0, qword [eax + edx*8 - 8]
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
mov eax, dword [esp + 0xc]
jnp 0x4553ef
movsd xmm0, qword [ecx + 0x50]
movsd qword [ecx + 0x68], xmm0
add esi, 4
cmp esi, eax
jne 0x4553c0
mov ecx, dword [0x7c1cf0]
cmp dword [edi + 0x2a4], 1
jne 0x455829
cmp ecx, 1
jle 0x455829
cmp dword [0x7c1e4c], 1
je 0x455829
cmp dword [edi + 0x198], 0xe
je 0x455829
lea ecx, [edi + 0x100]
call fcn.004117f0
lea ecx, [edi + 0x100]
mov dword [esp + 0x1c], eax
call fcn.004117e0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
cmp eax, ecx
je 0x4555c0
nop word [eax + eax]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
cmp dword [eax + 0x6c], 5
jge 0x4555ad
cmp dword [eax + 0x14], 0
jne 0x4555ad
push dword [eax + 8]
mov ecx, edi
call fcn.004389a0
mov esi, eax
mov dword [esp + 0x18], esi
test esi, esi
je 0x4555a9
lea ecx, [esp + 0xc4]
call fcn.00421270
add esi, 0x246c
lea eax, [esp + 0xe0]
push eax
mov ecx, esi
mov dword [esp + 0x2c], esi
call fcn.00428730
mov ecx, esi
mov eax, dword [eax]
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xcc]
push eax
call fcn.00428720
push eax
lea ecx, [esp + 0xc8]
call fcn.00428700
test al, al
je 0x4555a9
lea ecx, [esp + 0xc4]
call fcn.004117f0
push 0
mov ecx, edi
push dword [eax]
call fcn.0043b560
mov esi, eax
test esi, esi
je 0x45556d
push 0
push 0x4b3abc
push 0x4b3b30
push 0
push esi
call sub.VCRUNTIME140.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x455526
movsd xmm0, qword [eax + 0x4920]
jmp 0x455549
push 0
push 0x4b3c44
push 0x4b3b30
push 0
push esi
call sub.VCRUNTIME140.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x45556d
movsd xmm0, qword [eax + 0x4c50]
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jnp 0x45556d
mov eax, dword [esp + 0x14]
movsd qword [eax + 0x150], xmm0
mov eax, dword [esp + 0x18]
movsd qword [eax + 0xb0], xmm0
push 0
lea eax, [esp + 0xe8]
push eax
lea ecx, [esp + 0xcc]
call fcn.00411740
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0xcc]
push eax
call fcn.00428720
push eax
lea ecx, [esp + 0xc8]
call fcn.00428700
test al, al
jne 0x4554e4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x1c], eax
cmp eax, ecx
jne 0x455460
lea ecx, [edi + 0xf4]
call fcn.004117f0
lea ecx, [edi + 0xf4]
mov dword [esp + 0x18], eax
call fcn.004117e0
mov ecx, dword [esp + 0x18]
mov edx, eax
mov dword [esp + 0xc], edx
cmp ecx, edx
je 0x4556f1
nop dword [eax]
mov edx, dword [ecx]
mov dword [esp + 0x14], edx
mov ecx, dword [edx + 0x49dc]
cmp ecx, 3
je 0x45560f
cmp ecx, 2
je 0x45560f
cmp ecx, 1
jne 0x4556de
movsd xmm0, qword [edx + 0x4938]
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jp 0x4556da
mov esi, dword [edx + 0x14]
lea ecx, [esi + 0x246c]
call fcn.004117f0
lea ecx, [esi + 0x246c]
mov dword [esp + 0x1c], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
cmp eax, ecx
je 0x4556da
push 0
push dword [eax]
mov ecx, edi
call fcn.0043b560
mov esi, eax
test esi, esi
je 0x4556bb
push 0
push 0x4b3abc
push 0x4b3b30
push 0
push esi
call sub.VCRUNTIME140.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x45568c
movsd xmm0, qword [eax + 0x4920]
jmp 0x4556af
push 0
push 0x4b3c44
push 0x4b3b30
push 0
push esi
call sub.VCRUNTIME140.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x4556da
movsd xmm0, qword [eax + 0x4c50]
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jp 0x4556ce
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x28]
jne 0x455656
jmp 0x4556da
mov eax, dword [esp + 0x14]
movsd qword [eax + 0x4930], xmm0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
add ecx, 4
mov dword [esp + 0x18], ecx
cmp ecx, eax
jne 0x4555f0
lea ecx, [edi + 0x58]
call fcn.004117f0
lea ecx, [edi + 0x58]
mov dword [esp + 0x1c], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
cmp eax, ecx
je 0x455829
nop word [eax + eax]
push 0
push 0x4b3c44
push 0x4b3b30
push 0
push dword [eax]
call sub.VCRUNTIME140.dll___RTDynamicCast
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x455814
movsd xmm0, qword [ecx + 0x4cd8]
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jp 0x455814
mov esi, dword [ecx + 0x14]
lea ecx, [esi + 0x246c]
call fcn.004117f0
lea ecx, [esi + 0x246c]
mov dword [esp + 0xc], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], ecx
cmp eax, ecx
je 0x455814
nop dword [eax]
push 0
push dword [eax]
mov ecx, edi
call fcn.0043b560
mov esi, eax
test esi, esi
je 0x4557f5
push 0
push 0x4b3abc
push 0x4b3b30
push 0
push esi
call sub.VCRUNTIME140.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x4557c6
movsd xmm0, qword [eax + 0x4920]
jmp 0x4557e9
push 0
push 0x4b3c44
push 0x4b3b30
push 0
push esi
call sub.VCRUNTIME140.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x455814
movsd xmm0, qword [eax + 0x4c50]
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jp 0x455808
mov eax, dword [esp + 0xc]
add eax, 4
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x28]
jne 0x455790
jmp 0x455814
mov eax, dword [esp + 0x14]
movsd qword [eax + 0x4c90], xmm0
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x18]
jne 0x455720
lea ecx, [edi + 0x154]
call fcn.004117f0
mov esi, eax
lea ecx, [edi + 0x154]
mov dword [esp + 0xc], esi
call fcn.004117e0
mov dword [esp + 0x1c], eax
cmp esi, eax
je 0x4558f6
mov eax, dword [esi]
mov dword [esp + 0x14], eax
lea esi, [eax + 0x2454]
mov ecx, esi
call fcn.00454cc0
test al, al
jne 0x4558e1
mov ecx, esi
call fcn.004117f0
mov ecx, dword [esp + 0x14]
mov esi, eax
lea ecx, [ecx + 0x2454]
call fcn.004117e0
mov dword [esp + 0x28], eax
cmp esi, eax
je 0x4558ae
nop dword [eax]
push dword [esi]
mov ecx, edi
call fcn.0045a480
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4558a5
cmp eax, 0x14
jne 0x4558ae
add esi, 4
cmp esi, dword [esp + 0x28]
jne 0x455890
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4558ba
cmp eax, 0x14
jne 0x4558f6
mov esi, dword [esp + 0x14]
lea ecx, [esi + 0x246c]
call fcn.00454cc0
test al, al
je 0x4558e1
push 0
mov ecx, esi
call fcn.00469a90
movsd xmm0, qword [esp + 0x20]
movsd qword [esi + 0x78], xmm0
mov esi, dword [esp + 0xc]
add esi, 4
mov dword [esp + 0xc], esi
cmp esi, dword [esp + 0x1c]
jne 0x455851
cmp dword [0x7c1e4c], 1
jne case.0x45591b.11
mov eax, dword [0x7c1cf0]
add eax, 0xfffffff6
cmp eax, 0x37
ja case.0x45591b.11
movzx eax, byte [eax + 0x45a43c]
jmp dword [eax*4 + 0x45a418]
movsd xmm0, qword [edi + 0x1d8]
addsd xmm0, xmm0
jmp 0x4559b4
movsd xmm0, qword [edi + 0x1d8]
mulsd xmm0, qword [esp + 0xe8]
jmp 0x4559b4
movsd xmm0, qword [edi + 0x1d8]
mulsd xmm0, qword [esp + 0xf0]
jmp 0x4559b4
movsd xmm0, qword [edi + 0x1d8]
mulsd xmm0, qword [esp + 0xf8]
jmp 0x4559b4
movsd xmm0, qword [edi + 0x1d8]
mulsd xmm0, qword [esp + 0xd8]
jmp 0x4559b4
movsd xmm0, qword [edi + 0x1d8]
mulsd xmm0, qword [esp + 0x100]
jmp 0x4559b4
movsd xmm0, qword [edi + 0x1d8]
mulsd xmm0, qword [0x4af510]
jmp 0x4559b4
movsd xmm0, qword [edi + 0x1d8]
mulsd xmm0, qword [0x4af550]
movsd qword [edi + 0x1d0], xmm0
push 0
lea eax, [edi + 0x1b0]
mov ecx, edi
push eax
call fcn.00438d60
cmp dword [edi + 0xc], 0
mov dword [edi + 0x258], eax
jne 0x459ff8
test eax, eax
jne 0x456359
cmp dword [0x7c1e4c], eax
jne 0x455e7b
cmp dword [0x7c1d14], 5
jne 0x455b5e
lea ecx, [edi + 0xd0]
mov dword [esp + 0xc], eax
call fcn.004117f0
lea ecx, [edi + 0xd0]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov dword [esp + 0x28], eax
cmp dword [esp + 0x14], eax
je 0x455b5e
movsd xmm1, qword [esp + 0x20]
mov edi, dword [esp + 0x14]
nop dword [eax]
nop word [eax + eax]
mov esi, dword [edi]
movsd xmm2, qword [esi + 0x48d8]
ucomisd xmm2, xmm1
lahf
test ah, 0x44
jnp 0x455b0e
movsd xmm3, qword [esi + 0x30]
comisd xmm2, xmm3
jae 0x455b0e
movsd xmm1, qword [esi + 0x48b8]
subsd xmm2, xmm3
movsd xmm0, qword [esi + 0x48c0]
mov ecx, esi
mulsd xmm1, xmm1
push 1
mulsd xmm0, xmm0
xorps xmm2, xmmword [esp + 0xb4]
mulsd xmm1, qword [0x4af5d0]
divsd xmm1, xmm0
movsd qword [esp + 0xa4], xmm1
call fcn.0042a770
movsd xmm2, qword [esp + 0xa0]
movaps xmm1, xmm2
subsd xmm1, xmm0
andps xmm1, xmmword [esp + 0x50]
comisd xmm1, xmmword [0x4ae8d8]
jbe 0x455ad9
movsd xmm1, qword [esp + 0x20]
mov eax, 1
mov dword [esp + 0xc], eax
jmp 0x455b12
divsd xmm2, qword [0x4af5d0]
xorps xmm1, xmm1
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x455af3
sqrtsd xmm0, xmm0
jmp 0x455af8
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mulsd xmm0, qword [esi + 0x48c0]
movsd xmm1, qword [esp + 0x20]
movsd qword [esi + 0x48b8], xmm0
mov eax, dword [esp + 0xc]
add edi, 4
cmp edi, dword [esp + 0x28]
jne 0x455a40
mov edi, dword [esp + 0x6c]
cmp eax, 1
jne 0x455b5e
movsd xmm3, qword [esp + 0x78]
xor ecx, ecx
mov dword [edi + 0x1a4], ecx
mov dword [edi + 0xc], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
inc ecx
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x88], xmm1
jmp 0x45511f
cmp dword [edi + 0x2ac], 0
je 0x455cf5
cmp dword [edi + 0x2a8], 0
jne 0x455cf5
lea ecx, [edi + 0x100]
mov dword [esp + 0xc], 0
call fcn.004117f0
lea ecx, [edi + 0x100]
mov dword [esp + 0x1c], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
cmp eax, ecx
je 0x455cf5
movsd xmm1, qword [esp + 0x20]
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
movsd xmm0, qword [ecx + 0xc8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x455cd3
cmp dword [ecx + 0x58], 1
jne 0x455cd3
push dword [ecx + 8]
mov ecx, edi
call fcn.004389a0
mov esi, eax
test esi, esi
je 0x455ccd
lea ecx, [edi + 0x160]
call fcn.00411760
push esi
mov ecx, edi
call fcn.0045ca20
mov esi, eax
test esi, esi
je 0x455ccd
mov eax, dword [esp + 0x28]
movsd xmm3, qword [esi + 0x30]
movsd xmm2, qword [eax + 0xc8]
divsd xmm2, qword [0x4af5a8]
comisd xmm2, xmm3
jae 0x455ccd
movsd xmm1, qword [esi + 0x48b8]
subsd xmm2, xmm3
movsd xmm0, qword [esi + 0x48c0]
mov ecx, esi
mulsd xmm1, xmm1
push 1
mulsd xmm0, xmm0
xorps xmm2, xmmword [esp + 0xb4]
mulsd xmm1, qword [0x4af5d0]
divsd xmm1, xmm0
movsd qword [esp + 0xa4], xmm1
call fcn.0042a770
movsd xmm2, qword [esp + 0xa0]
movaps xmm1, xmm2
subsd xmm1, xmm0
andps xmm1, xmmword [esp + 0x50]
comisd xmm1, xmmword [0x4ae8d8]
jbe 0x455c9e
movsd xmm1, qword [esp + 0x20]
mov ecx, 1
mov dword [esp + 0xc], ecx
jmp 0x455cd7
divsd xmm2, qword [0x4af5d0]
xorps xmm1, xmm1
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x455cb8
sqrtsd xmm0, xmm0
jmp 0x455cbd
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mulsd xmm0, qword [esi + 0x48c0]
movsd qword [esi + 0x48b8], xmm0
movsd xmm1, qword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x14]
jne 0x455bb2
cmp ecx, 1
je 0x455b28
mov ecx, edi
call fcn.004375a0
cmp eax, 1
jne 0x455d59
xor ecx, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov dword [edi + 0x1a4], ecx
movsd xmm3, qword [esp + 0x78]
inc ecx
movsd xmm1, qword [esp + 0x20]
movsd xmm0, qword [edi + 0x1d8]
mov dword [esp + 0x68], 0
mov dword [esp + 0x10], 0
mov dword [edi + 0xc], 0
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x88], xmm1
movsd qword [edi + 0x1d0], xmm0
jmp 0x45511f
cmp dword [edi + 0x2a4], 1
jne 0x455dd4
cmp dword [0x7c1cf0], 1
jg 0x455dd4
cmp dword [0x7c1e4c], 1
je 0x455dd4
cmp dword [edi + 0x198], 0xe
je 0x455dd4
movsd xmm3, qword [esp + 0x78]
mov ecx, 1
movsd xmm1, qword [esp + 0x20]
inc ecx
mov dword [esp + 0x68], 0
mov dword [esp + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x1a4], 0
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x88], xmm1
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
jmp 0x45511f
cmp dword [0x7c1e6c], 2
jne 0x455dfb
cmp dword [0x7c1e4c], 1
je 0x455dfb
movsd xmm1, qword [esp + 0x20]
mov dword [0x7c1e6c], 1
jmp 0x455b28
cmp dword [0x7c1e4c], 0
jne 0x455e7b
cmp dword [edi + 0x198], 0xb
je 0x455e7b
cmp dword [0x7c1d14], 5
je 0x455e7b
mov ecx, edi
call fcn.0045d890
cmp eax, 1
jne 0x455e7b
lea ecx, [edi + 0xd0]
call fcn.004117f0
lea ecx, [edi + 0xd0]
mov esi, eax
call fcn.004117e0
cmp esi, eax
je 0x455e7b
mov ecx, dword [esi]
cmp dword [ecx + 0x4930], 6
jne 0x455e74
movsd xmm0, qword [ecx + 0x4910]
subsd xmm0, qword [ecx + 0x48b8]
movsd xmm1, qword [0x4ae900]
andps xmm0, xmmword [esp + 0x50]
comisd xmm1, xmm0
jbe 0x455fe1
add esi, 4
cmp esi, eax
jne 0x455e42
cmp dword [edi + 0xeb58c], 1
mov dword [edi + 0x1a4], 0
jne 0x45627c
lea ecx, [edi + 0xeb564]
call fcn.004117d0
test eax, eax
je 0x456275
movsd xmm0, qword [edi + 0xeb5a8]
movsd xmm1, qword [esp + 0x20]
comisd xmm0, xmm1
jbe 0x456215
lea ecx, [edi + 0x58]
mov dword [esp + 0xa8], 0
call fcn.004117f0
lea ecx, [edi + 0x58]
mov dword [esp + 0xc], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], ecx
cmp eax, ecx
je 0x45620f
nop
push 0
push 0x4b3a68
push 0x4b3b30
push 0
push dword [eax]
call sub.VCRUNTIME140.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
test esi, esi
je 0x455fc1
mov eax, dword [esi + 0x14]
test eax, eax
je 0x455fc1
mov eax, dword [eax + 0x2450]
movsd xmm1, qword [esp + 0x20]
test eax, eax
je 0x455fc7
movsd xmm0, qword [eax + 0x108]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x455fc7
mov ecx, esi
call fcn.00471c30
mov ecx, esi
call fcn.00471b60
movsd xmm0, qword [esi + 0x20]
comisd xmm0, xmmword [esi + 0x2410]
jbe 0x456038
movsd xmm0, qword [esi + 0x48e8]
movsd xmm1, qword [edi + 0xeb5a8]
comisd xmm1, xmm0
jbe 0x456038
cmp dword [esi + 0x494c], 0
je 0x455fc1
comisd xmm1, xmm0
jbe 0x456038
cmp dword [esi + 0x494c], 0
movsd xmm6, qword [esp + 0x50]
movsd xmm2, qword [0x4ae928]
jge 0x456046
subsd xmm0, xmm1
andps xmm0, xmm6
comisd xmm2, xmm0
jbe 0x456046
movsd xmm1, qword [esp + 0x20]
mov eax, dword [esp + 0xc]
add eax, 4
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x28]
jne 0x455ef0
jmp 0x456215
lea ecx, [edi + 0xd0]
call fcn.004117f0
lea ecx, [edi + 0xd0]
mov esi, eax
call fcn.004117e0
cmp esi, eax
je 0x456022
nop dword [eax]
mov ecx, dword [esi]
cmp dword [ecx + 0x4930], 6
jne 0x45601b
movsd xmm0, qword [ecx + 0x48b8]
movsd qword [ecx + 0x4910], xmm0
add esi, 4
cmp esi, eax
jne 0x456000
movsd xmm1, qword [esp + 0x20]
mov dword [esp + 0xac], 1
jmp 0x455b28
movsd xmm2, qword [0x4ae928]
movsd xmm6, qword [esp + 0x50]
mov dword [edi + 0xeb5a0], 6
mov eax, dword [esi + 0x4818]
mov dword [edi + 0xeb588], eax
mov eax, dword [esi + 0x494c]
mov dword [esp + 0xa8], 1
cmp eax, 1
je 0x4560a8
cmp eax, 0xfffffffe
je 0x456089
mov eax, dword [esi + 0x14]
movsd xmm2, qword [eax + 0x30]
movsd qword [esi + 0x4950], xmm2
jmp 0x456091
movsd xmm2, qword [esi + 0x4950]
mov ecx, dword [esi + 0x14]
movsd xmm1, qword [ecx + 0x38]
mov dword [esi + 0x494c], 1
jmp 0x4561e3
movsd xmm5, qword [esi + 0x20]
movsd xmm4, qword [esi + 0x2410]
comisd xmm5, xmm4
jbe 0x45618f
movsd xmm3, qword [esi + 0x48e8]
movsd xmm1, qword [edi + 0xeb5a8]
movaps xmm0, xmm3
subsd xmm0, xmm1
andps xmm0, xmm6
comisd xmm2, xmm0
jbe 0x4560e5
comisd xmm1, xmm3
ja 0x45610f
movsd xmm1, qword [esi + 0x4958]
movsd xmm2, qword [esi + 0x4950]
movaps xmm0, xmm1
subsd xmm0, xmm2
andps xmm0, xmm6
movsd xmm6, qword [esp + 0x78]
comisd xmm6, xmm0
jbe 0x45619f
mov eax, dword [esi + 0x14]
push 6
push dword [0x4b3934]
test eax, eax
je 0x456131
push dword [eax + 0x10]
movsd xmm0, qword [eax + 0x68]
sub esp, 0x10
movsd qword [esp + 8], xmm0
jmp 0x45613c
push 0
sub esp, 0x10
movsd qword [esp + 8], xmm4
movsd qword [esp], xmm3
push 0
push dword [0x7c1cf0]
push str._d__d__lf__lf__d__d__d
push 0x4b46f0
call fcn.00404440
mov ecx, dword [0x7c1e60]
add esp, 0x2c
push dword [0x7c1cf0]
call fcn.00428060
mov dword [esi + 0x494c], 0
mov dword [edi + 0xeb588], 0
mov dword [edi + 0x1a4], 0
jmp 0x45620f
movsd xmm1, qword [esi + 0x4958]
movsd xmm2, qword [esi + 0x4950]
movsd xmm0, qword [edi + 0xeb5a8]
comisd xmm0, xmmword [esi + 0x48e8]
ja 0x4561d2
comisd xmm4, xmm5
ja 0x4561d2
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 0x2450]
movsd xmm2, qword [eax + 0x108]
movsd qword [esi + 0x4950], xmm2
jmp 0x4561eb
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 0x2450]
movsd xmm1, qword [eax + 0x108]
movsd qword [esi + 0x4958], xmm1
mov eax, dword [ecx + 0x2450]
addsd xmm1, xmm2
mulsd xmm1, qword [0x4aed20]
movsd qword [eax + 0x108], xmm1
mov dword [edi + 0x1a4], 1
movsd xmm1, qword [esp + 0x20]
cmp dword [edi + 0x1a4], 0
je 0x456275
xor eax, eax
mov dword [edi + 0xc], eax
movsd xmm0, qword [esp + 0x78]
mov ecx, edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
movsd qword [esp + 0x88], xmm1
movsd qword [esp + 0x70], xmm0
mov dword [edi + 0x1a4], 0
mov dword [0x7c1cf0], 0
mov dword [esp + 0x68], eax
mov dword [esp + 0x10], eax
call fcn.0045d660
mov ecx, dword [0x7c1cf0]
movsd xmm3, qword [esp + 0x70]
inc ecx
jmp 0x45511f
cmp dword [edi + 0xeb58c], 1
jle 0x45a002
movsd xmm0, qword [edi + 0xeb5a8]
comisd xmm0, xmmword [esp + 0x20]
jbe 0x45a002
push 0
push 1
mov ecx, edi
mov dword [esp + 0xb0], 1
mov dword [edi + 0xeb588], 1
call fcn.00464070
cmp dword [edi + 0x1a4], 0
je 0x456303
movsd xmm3, qword [esp + 0x78]
xor ecx, ecx
movsd xmm1, qword [esp + 0x20]
xor eax, eax
mov dword [edi + 0x1a4], ecx
inc ecx
mov dword [edi + 0xc], 0
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x88], xmm1
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [edi + 0xeb5d0], 1
jmp 0x45511f
cmp dword [edi + 0xeb59c], 1
jne 0x45a002
mov ecx, edi
call fcn.004641f0
test eax, eax
je 0x45a002
movsd xmm3, qword [esp + 0x78]
xor ecx, ecx
movsd xmm1, qword [esp + 0x20]
xor eax, eax
mov dword [edi + 0x1a4], ecx
inc ecx
mov dword [edi + 0xc], 0
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x88], xmm1
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
jmp 0x45511f
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [edi + 0x270]
inc eax
cmp dword [esp + 0x68], ecx
mov dword [esp + 0x68], ecx
cmove edx, eax
cmp dword [edi + 0x1a8], 0
mov dword [esp + 0x3c], edx
jle 0x458b42
cmp dword [edi + 0x198], 0xb
je 0x458b42
cmp dword [edi + 0xeb58c], 1
jg 0x4563ed
lea ecx, [edi + 0xd0]
call fcn.004117d0
test eax, eax
jne 0x4563e9
lea ecx, [edi + 0xdc]
call fcn.004117d0
test eax, eax
jne 0x4563e9
cmp dword [0x7c1d28], 1
jne 0x458b42
lea ecx, [edi + 0xd0]
call fcn.004117d0
test eax, eax
jne 0x458b42
lea ecx, [edi + 0xa0]
call fcn.004117d0
test eax, eax
je 0x458b42
mov edx, dword [esp + 0x3c]
cmp dword [0x7c1e78], 0
jne 0x458b42
cmp edx, dword [0x4b3930]
jl 0x458b42
cmp dword [edi + 0x198], 0xb
je 0x456581
cmp dword [edi + 0xeb58c], 1
jle 0x456581
cmp dword [esp + 0xa8], 0
jne 0x456581
push dword [edi + 0x270]
mov ecx, edi
call fcn.004389a0
mov dword [esp + 0x1c], eax
test eax, eax
je 0x45652a
lea esi, [eax + 0x246c]
mov dword [esp + 0xc], 0
mov ecx, esi
call fcn.004117f0
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.004117e0
mov esi, dword [esp + 0x28]
mov dword [esp + 0x14], eax
cmp esi, eax
je 0x4564be
cmp dword [edi + 0xeb594], 1
mov ecx, dword [esi]
jne 0x456495
push ecx
mov ecx, edi
call fcn.00462c90
cmp eax, 1
je 0x456575
mov ecx, dword [esp + 0xc]
jmp 0x4564b1
push 0
push ecx
mov ecx, edi
call fcn.00462a00
mov ecx, dword [esp + 0xc]
test eax, eax
mov eax, 1
cmovne ecx, eax
mov dword [esp + 0xc], ecx
add esi, 4
cmp esi, dword [esp + 0x14]
jne 0x456473
test ecx, ecx
jne 0x45651b
cmp dword [edi + 0xeb594], 0
jne 0x45652a
mov esi, dword [esp + 0x1c]
lea ecx, [esi + 0x2454]
call fcn.004117f0
lea ecx, [esi + 0x2454]
mov dword [esp + 0x28], eax
call fcn.004117e0
mov esi, dword [esp + 0x28]
mov dword [esp + 0x14], eax
cmp esi, eax
je 0x45652a
push 0
push dword [esi]
mov ecx, edi
call fcn.00462a00
mov ecx, dword [esp + 0xc]
test eax, eax
mov eax, 1
cmovne ecx, eax
add esi, 4
mov dword [esp + 0xc], ecx
cmp esi, dword [esp + 0x14]
jne 0x4564f5
cmp ecx, 1
jne 0x45652a
mov dword [edi + 0x1a4], 1
cmp dword [edi + 0x1a4], 0
je 0x456581
movsd xmm3, qword [esp + 0x78]
xor eax, eax
movsd xmm1, qword [esp + 0x20]
xor ecx, ecx
mov dword [edi + 0x1a4], ecx
inc ecx
mov dword [edi + 0xc], 0
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x88], xmm1
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x10], eax
jmp 0x45511f
mov dword [edi + 0x1a4], 1
jmp 0x456520
cmp dword [0x7c1d28], 1
mov dword [edi + 0x1ac], 0
mov dword [esp + 0x10], 0
jne 0x456bfd
cmp dword [edi + 0x2a8], 0
jne 0x456737
cmp dword [0x7c1e4c], 0
jne 0x456737
lea ecx, [edi + 0x100]
call fcn.004117f0
lea ecx, [edi + 0x100]
mov dword [esp + 0xc], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], ecx
cmp eax, ecx
je 0x45671f
movsd xmm1, qword [esp + 0x20]
nop dword [eax]
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
movsd xmm0, qword [ecx + 0xc8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x45670a
cmp dword [ecx + 0x58], 1
jne 0x45670a
push dword [ecx + 8]
mov ecx, edi
call fcn.004389a0
mov esi, eax
test esi, esi
je 0x456704
lea ecx, [edi + 0x160]
call fcn.00411760
push esi
mov ecx, edi
call fcn.0045ca20
mov esi, eax
test esi, esi
je 0x456704
mov eax, dword [esp + 0x28]
movsd xmm3, qword [esi + 0x30]
movsd xmm2, qword [eax + 0xc8]
divsd xmm2, qword [0x4af5a8]
comisd xmm2, xmm3
jae 0x456704
movsd xmm1, qword [esi + 0x48b8]
subsd xmm2, xmm3
movsd xmm0, qword [esi + 0x48c0]
mov ecx, esi
mulsd xmm1, xmm1
push 1
mulsd xmm0, xmm0
xorps xmm2, xmmword [esp + 0xb4]
mulsd xmm1, qword [0x4af5d0]
divsd xmm1, xmm0
movsd qword [esp + 0xa4], xmm1
call fcn.0042a770
movsd xmm2, qword [esp + 0xa0]
movaps xmm1, xmm2
subsd xmm1, xmm0
andps xmm1, xmmword [esp + 0x50]
comisd xmm1, xmmword [0x4ae8d8]
jbe 0x4566d5
mov dword [esp + 0x10], 1
jmp 0x456704
divsd xmm2, qword [0x4af5d0]
xorps xmm1, xmm1
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x4566ef
sqrtsd xmm0, xmm0
jmp 0x4566f4
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mulsd xmm0, qword [esi + 0x48c0]
movsd qword [esi + 0x48b8], xmm0
movsd xmm1, qword [esp + 0x20]
mov eax, dword [esp + 0xc]
add eax, 4
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x14]
jne 0x4565f0
cmp dword [0x7c1d28], 1
jne 0x456bfd
cmp dword [esp + 0x10], 0
jne 0x456bfd
lea ecx, [edi + 0x100]
call fcn.004117f0
lea ecx, [edi + 0x100]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov ecx, dword [esp + 0x14]
mov esi, eax
mov dword [esp + 0x18], eax
cmp ecx, esi
je 0x456bfd
cmp dword [edi + 0x2a8], 1
mov ecx, dword [ecx]
mov dword [esp + 0x1c], ecx
je 0x45677b
cmp dword [0x7c1e4c], 1
jne 0x456785
cmp dword [ecx + 0x1c], 3
jge 0x456bea
cmp dword [0x7c1e4c], 0
jne 0x4567a8
cmp dword [ecx + 0x1c], 3
jl 0x4567a8
mov eax, dword [0x4b3930]
lea eax, [eax + eax*2]
add eax, eax
cmp dword [esp + 0x3c], eax
jl 0x456bea
push dword [ecx + 8]
mov ecx, edi
call fcn.004389a0
mov dword [esp + 0xc], eax
test eax, eax
je 0x456bea
xor esi, esi
cmp dword [eax + 0x14], esi
jne 0x4567ea
mov eax, dword [esp + 0x1c]
mov ecx, edi
push dword [eax + 8]
call fcn.00438af0
mov esi, eax
test esi, esi
je 0x456be6
mov ecx, dword [esi + 0x14]
cmp dword [ecx + 0x14], 0
jne 0x456be6
lea ecx, [edi + 0x160]
call fcn.00411760
push dword [esp + 0xc]
mov ecx, edi
call fcn.0045ca20
mov dword [esp + 0x28], eax
test eax, eax
je 0x456be6
movsd xmm1, qword [eax + 0x48b8]
movsd xmm0, qword [eax + 0x48c0]
mulsd xmm1, xmm1
mov ecx, dword [esp + 0xc]
mulsd xmm0, xmm0
mulsd xmm1, qword [0x4af5d0]
divsd xmm1, xmm0
movsd xmm0, qword [esp + 0x78]
movsd qword [esp + 0x30], xmm1
movsd qword [esp + 0xa0], xmm0
call fcn.0046a010
mov eax, dword [esp + 0x1c]
movaps xmm2, xmm0
movsd qword [esp + 0x48], xmm2
cmp dword [eax + 0x1c], 3
jl 0x4568ae
mov ecx, dword [esp + 0x28]
movsd xmm0, qword [0x4ae9f8]
movsd qword [esp + 0xa0], xmm0
mov ecx, dword [ecx + 0x14]
call fcn.0046a010
movsd xmm4, qword [esp + 0x50]
movaps xmm2, xmm0
movsd xmm1, qword [esp + 0x48]
andps xmm2, xmm4
andps xmm1, xmm4
comisd xmm2, xmm1
jbe 0x4568a6
movaps xmm2, xmm0
xorps xmm2, xmmword [esp + 0xb0]
jmp 0x4568b4
movsd xmm2, qword [esp + 0x48]
jmp 0x4568b4
movsd xmm4, qword [esp + 0x50]
movsd xmm0, qword [edi + 0x1d0]
movaps xmm1, xmm2
andps xmm1, xmm4
comisd xmm0, xmm1
ja 0x456be6
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x14], 0
jne 0x4568e1
mov ecx, dword [esi + 0x14]
call fcn.0046a010
movaps xmm2, xmm0
xorps xmm2, xmmword [esp + 0xb0]
mulsd xmm2, qword [esp + 0xa0]
mov esi, dword [esp + 0x28]
mov ecx, esi
push 1
call fcn.0042a770
movsd xmm2, qword [esp + 0x30]
movaps xmm1, xmm2
subsd xmm1, xmm0
andps xmm1, xmmword [esp + 0x50]
comisd xmm1, xmmword [0x4ae8d8]
jbe 0x456968
comisd xmm2, xmm0
mov dword [esp + 0x10], 1
jbe 0x456be6
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
movsd xmm1, qword [eax + 0x108]
movsd xmm0, qword [ecx + 0x68]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x456be6
comisd xmm1, xmmword [0x4af858]
jbe 0x456be6
movsd qword [ecx + 0x68], xmm1
jmp 0x456be6
movaps xmm0, xmm2
xorps xmm1, xmm1
divsd xmm0, qword [0x4af5d0]
ucomisd xmm1, xmm0
ja 0x456982
sqrtsd xmm0, xmm0
jmp 0x456987
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mulsd xmm0, qword [esi + 0x48c0]
movsd xmm4, qword [esp + 0x50]
movsd qword [esi + 0x48b8], xmm0
mov edx, dword [edi + 0x2ac]
cmp edx, 2
je 0x456aed
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [0x4ae8a8]
cmp edx, 1
je 0x456afb
movsd xmm3, qword [edi + 0x2c8]
comisd xmm3, xmmword [esp + 0x20]
jbe 0x456afb
movaps xmm0, xmm1
subsd xmm0, qword [esi + 0x49b8]
andps xmm0, xmm4
comisd xmm2, xmm0
jbe 0x456afb
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x1c], 3
jge 0x456be6
mov ecx, dword [esp + 0x3c]
cmp ecx, dword [0x4b3930]
jl 0x456be6
mov edx, dword [esp + 0xc]
mov ecx, dword [edi + 0x270]
cmp dword [edx + 0x10], ecx
mov edx, dword [edi + 0x2ac]
je 0x456a32
mov eax, dword [esi + 0x10]
cmp dword [eax + 0x10], ecx
jne 0x456afb
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [eax + 0x108]
mulsd xmm3, qword [0x4aeed8]
movsd xmm2, qword [ecx + 0x68]
movaps xmm1, xmm2
subsd xmm1, xmm0
andps xmm1, xmm4
divsd xmm1, xmm0
comisd xmm3, xmm1
jbe 0x456aed
movsd xmm0, qword [ecx + 0x38]
comisd xmm0, xmm2
jbe 0x456aed
movsd xmm0, qword [edi + 0x260]
movaps xmm1, xmm0
movsd xmm5, qword [esp + 0x78]
mulsd xmm1, qword [esp + 0xd0]
andps xmm0, xmm4
divsd xmm1, xmm0
addsd xmm1, xmm5
mulsd xmm1, xmm2
movsd qword [ecx + 0x68], xmm1
movsd xmm2, qword [eax + 0x108]
subsd xmm1, xmm2
movsd xmm3, qword [edi + 0x2c8]
andps xmm1, xmm4
divsd xmm1, xmm2
comisd xmm1, xmm3
jbe 0x456bde
movsd xmm0, qword [edi + 0x260]
movaps xmm1, xmm0
andps xmm0, xmm4
mulsd xmm1, xmm3
divsd xmm1, xmm0
addsd xmm1, xmm5
mulsd xmm1, xmm2
movsd qword [ecx + 0x68], xmm1
jmp 0x456bde
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [0x4ae8a8]
cmp dword [esp + 0x10], 0
jne 0x456be6
cmp dword [edi + 0x2a4], 3
jge 0x456be6
cmp edx, 2
je 0x456b21
cmp edx, 1
jne 0x456be6
subsd xmm1, qword [esi + 0x49b8]
andps xmm1, xmm4
comisd xmm2, xmm1
jbe 0x456be6
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x270]
cmp dword [eax + 0x10], ecx
je 0x456b51
mov eax, dword [esi + 0x10]
cmp dword [eax + 0x10], ecx
jne 0x456be6
movsd xmm1, qword [esp + 0x78]
mov eax, dword [esp + 0x1c]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
lea esi, [eax + 0x24f0]
mov ecx, esi
mulsd xmm0, qword [0x4ae9f0]
subsd xmm1, xmm0
mulsd xmm1, qword [eax + 0x118]
movsd qword [eax + 0x118], xmm1
call fcn.004117f0
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.004117e0
mov esi, dword [esp + 0x1c]
mov edx, eax
mov eax, dword [esp + 0x28]
cmp eax, edx
je 0x456bc6
nop word [eax + eax]
mov ecx, dword [eax]
add eax, 4
movsd xmm0, qword [esi + 0x118]
movsd qword [ecx + 0x18], xmm0
cmp eax, edx
jne 0x456bb0
mov ecx, esi
call fcn.00467940
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esi + 0x108]
movsd qword [eax + 0x68], xmm0
mov dword [esp + 0x10], 1
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add ecx, 4
mov dword [esp + 0x14], ecx
cmp ecx, esi
jne 0x456763
cmp dword [0x7c1e4c], 0
jne 0x457561
cmp dword [0x7c1d28], 1
lea ecx, [edi + 0xd0]
jne 0x4572b5
call fcn.004117d0
test eax, eax
jne 0x456e13
cmp dword [edi + 0x2ac], 2
je 0x456e20
lea ecx, [edi + 0x100]
call fcn.004117f0
lea ecx, [edi + 0x100]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
cmp eax, ecx
je 0x456e13
mov eax, dword [eax]
mov dword [esp + 0xc], eax
cmp dword [eax + 0x1c], 3
jge 0x456e00
push dword [eax + 8]
mov ecx, edi
call fcn.004389a0
mov esi, eax
cmp dword [esi + 0x14], 0
je 0x456dfc
lea ecx, [edi + 0x160]
call fcn.00411760
push esi
mov ecx, edi
call fcn.0045cb70
mov dword [esp + 0x28], eax
test eax, eax
je 0x456dfc
mov ecx, esi
call fcn.0046a010
andps xmm0, xmmword [esp + 0x50]
movsd xmm1, qword [edi + 0x1d0]
comisd xmm1, xmm0
ja 0x456dfc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
movsd xmm1, qword [eax + 0x118]
call fcn.0042adf0
mov eax, dword [esp + 0x28]
movsd xmm4, qword [esp + 0x50]
movsd xmm1, qword [eax + 0x48d0]
subsd xmm1, xmm0
andps xmm1, xmm4
comisd xmm1, xmmword [0x4ae890]
jbe 0x456d0d
movsd qword [eax + 0x48d0], xmm0
jmp 0x456df4
mov edx, dword [esp + 0xc]
cmp dword [edx + 0x1c], 3
jge 0x456dfc
mov ecx, dword [esp + 0x3c]
cmp ecx, dword [0x4b3930]
jl 0x456dfc
mov ecx, dword [edi + 0x270]
cmp dword [esi + 0x10], ecx
je 0x456d42
mov eax, dword [eax + 0x14]
cmp dword [eax + 0x10], ecx
jne 0x456dfc
movsd xmm2, qword [edi + 0x2c8]
comisd xmm2, xmmword [esp + 0x20]
jbe 0x456dfc
movsd xmm3, qword [esi + 0x68]
movsd xmm0, qword [edx + 0x108]
movaps xmm1, xmm3
subsd xmm1, xmm0
mulsd xmm2, qword [0x4aeed8]
andps xmm1, xmm4
divsd xmm1, xmm0
comisd xmm2, xmm1
jbe 0x456dfc
movsd xmm0, qword [edi + 0x260]
movaps xmm1, xmm0
movsd xmm5, qword [esp + 0x78]
mulsd xmm1, qword [0x4ae928]
andps xmm0, xmm4
divsd xmm1, xmm0
addsd xmm1, xmm5
mulsd xmm1, xmm3
movsd qword [esi + 0x68], xmm1
movsd xmm2, qword [edx + 0x108]
subsd xmm1, xmm2
movsd xmm3, qword [edi + 0x2c8]
andps xmm1, xmm4
divsd xmm1, xmm2
comisd xmm1, xmm3
jbe 0x456df4
movsd xmm0, qword [edi + 0x260]
movaps xmm1, xmm0
andps xmm0, xmm4
mulsd xmm1, xmm3
divsd xmm1, xmm0
addsd xmm1, xmm5
mulsd xmm1, xmm2
movsd qword [esi + 0x68], xmm1
mov dword [esp + 0x10], 1
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp eax, ecx
jne 0x456c65
cmp dword [edi + 0x2ac], 2
jne 0x457072
cmp dword [esp + 0x10], 0
jne 0x4572a2
lea eax, [edi + 0x100]
mov ecx, eax
mov dword [esp + 0xc], eax
call fcn.004117f0
mov esi, eax
lea ecx, [edi + 0x100]
mov dword [esp + 0x1c], esi
call fcn.004117e0
mov dword [esp + 0x48], eax
cmp esi, eax
je 0x457087
nop dword [eax]
mov esi, dword [esi]
mov ecx, edi
mov dword [esp + 0x28], esi
push dword [esi + 8]
call fcn.004389a0
mov dword [esp + 0x14], eax
test eax, eax
je 0x457057
cmp dword [eax + 0x14], 0
je 0x457057
lea ecx, [edi + 0x160]
call fcn.00411760
push dword [esp + 0x14]
mov ecx, edi
call fcn.0045cb70
test eax, eax
je 0x457057
mov edx, dword [eax + 0x14]
mov ecx, dword [edi + 0x270]
cmp dword [edx + 0x10], ecx
je 0x456eea
mov eax, dword [eax + 0x10]
cmp dword [eax + 0x10], ecx
je 0x456eea
lea ecx, [edi + 0x160]
call fcn.00411760
push dword [esp + 0x14]
mov ecx, edi
call fcn.0045ca20
test eax, eax
je 0x457057
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
cmp eax, dword [edi + 0x270]
jne 0x457057
cmp dword [edi + 0x2a4], 3
jl 0x456f3f
cmp dword [esi + 0x1c], 1
jne 0x456f3f
movsd xmm1, qword [esi + 0x118]
comisd xmm1, xmmword [esi + 0x25c8]
movsd xmm2, qword [esp + 0x20]
jb 0x456f1f
comisd xmm2, xmmword [edi + 0x260]
ja 0x457057
movsd xmm0, qword [esi + 0x25d0]
comisd xmm0, xmm1
jb 0x456f3f
movsd xmm0, qword [edi + 0x260]
comisd xmm0, xmm2
ja 0x457057
movsd xmm4, qword [esi + 0xc8]
divsd xmm4, qword [0x4af5a8]
movsd xmm1, qword [esi + 0x118]
movsd xmm0, qword [esp + 0x20]
movaps xmm3, xmm4
mulsd xmm3, qword [0x4aed00]
comisd xmm1, xmm3
jbe 0x456f84
movsd xmm2, qword [edi + 0x260]
comisd xmm2, xmm0
jbe 0x456f84
movsd xmm5, qword [esp + 0x78]
jmp 0x456fb6
movsd xmm2, qword [edi + 0x260]
comisd xmm0, xmm2
jbe 0x457057
movsd xmm0, qword [edi + 0x2b0]
movsd xmm5, qword [esp + 0x78]
addsd xmm0, xmm5
mulsd xmm0, xmm4
comisd xmm0, xmm1
jbe 0x457057
mulsd xmm2, qword [0x4aeae8]
subsd xmm1, xmm2
comisd xmm3, xmm1
movsd qword [esi + 0x118], xmm1
jbe 0x456fdb
movsd qword [esi + 0x118], xmm3
movaps xmm1, xmm3
movsd xmm0, qword [edi + 0x2b0]
addsd xmm0, xmm5
mulsd xmm0, xmm4
comisd xmm1, xmm0
jbe 0x456ff9
movsd qword [esi + 0x118], xmm0
lea ecx, [esi + 0x24f0]
call fcn.004117f0
lea ecx, [esi + 0x24f0]
mov dword [esp + 0x18], eax
call fcn.004117e0
mov esi, dword [esp + 0x28]
mov edx, eax
mov eax, dword [esp + 0x18]
cmp eax, edx
je 0x457037
mov ecx, dword [eax]
add eax, 4
movsd xmm0, qword [esi + 0x118]
movsd qword [ecx + 0x18], xmm0
cmp eax, edx
jne 0x457021
mov ecx, esi
call fcn.00467940
mov eax, dword [esp + 0x14]
movsd xmm0, qword [esi + 0x108]
mov dword [esp + 0x10], 1
movsd qword [eax + 0x68], xmm0
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x1c], esi
cmp esi, dword [esp + 0x48]
jne 0x456e60
mov eax, dword [esp + 0xc]
jmp 0x457078
lea eax, [edi + 0x100]
cmp dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
jne 0x4572a2
lea ecx, [edi + 0xd0]
call fcn.004117d0
mov esi, dword [esp + 0x3c]
test eax, eax
jne 0x457189
cmp dword [edi + 0x2ac], 2
jne 0x457189
cmp esi, dword [0x4b3930]
jle 0x457189
mov ecx, dword [esp + 0xc]
call fcn.004117f0
mov ecx, dword [esp + 0xc]
mov esi, eax
mov dword [esp + 0x28], esi
call fcn.004117e0
mov dword [esp + 0x14], eax
cmp esi, eax
je 0x457185
nop dword [eax + eax]
mov eax, dword [esi]
mov ecx, edi
mov dword [esp + 0x48], eax
push dword [eax + 8]
call fcn.004389a0
mov esi, eax
cmp dword [esi + 0x14], 0
je 0x457164
lea ecx, [edi + 0x160]
call fcn.00411760
push esi
mov ecx, edi
call fcn.0045cb70
mov esi, eax
test esi, esi
je 0x457164
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + 0x10]
cmp ecx, dword [edi + 0x270]
jne 0x457164
mov eax, dword [esp + 0x48]
mov ecx, esi
movsd xmm1, qword [eax + 0x118]
call fcn.0042adf0
movsd xmm1, qword [esi + 0x48d0]
subsd xmm1, xmm0
andps xmm1, xmmword [esp + 0x50]
comisd xmm1, xmmword [0x4ae8d8]
jbe 0x457164
mov edx, 1
movsd qword [esi + 0x48d0], xmm0
mov dword [esp + 0x10], edx
jmp 0x457168
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
add esi, 4
mov dword [esp + 0x28], esi
cmp esi, dword [esp + 0x14]
jne 0x4570e0
test edx, edx
jne 0x4572a2
mov esi, dword [esp + 0x3c]
lea ecx, [edi + 0xd0]
call fcn.004117d0
test eax, eax
jne 0x4572a2
cmp dword [edi + 0x2ac], 2
je 0x4572a2
cmp esi, dword [0x4b3930]
jle 0x4572a2
mov ecx, dword [esp + 0xc]
call fcn.004117f0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
cmp eax, ecx
je 0x4572a2
nop
mov eax, dword [eax]
mov dword [esp + 0x28], eax
cmp dword [eax + 0x1c], 3
jl 0x45728f
push dword [eax + 8]
mov ecx, edi
call fcn.004389a0
mov esi, eax
mov dword [esp + 0x48], esi
cmp dword [esi + 0x14], 0
je 0x45728b
lea ecx, [edi + 0x160]
call fcn.00411760
push esi
mov ecx, edi
call fcn.0045cb70
mov esi, eax
test esi, esi
je 0x45728b
mov ecx, dword [esp + 0x48]
call fcn.0046a010
movsd xmm2, qword [edi + 0x1d0]
andps xmm0, xmmword [esp + 0x50]
addsd xmm2, xmm2
comisd xmm2, xmm0
ja 0x45728b
mov eax, dword [esp + 0x28]
mov ecx, esi
movsd xmm1, qword [eax + 0x118]
call fcn.0042adf0
movsd xmm1, qword [esi + 0x48d0]
mov ecx, dword [esp + 0xc]
subsd xmm1, xmm0
andps xmm1, xmmword [esp + 0x50]
comisd xmm1, xmmword [0x4ae928]
jbe 0x45728f
movsd qword [esi + 0x48d0], xmm0
mov dword [esp + 0x10], 1
jmp 0x45728f
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp eax, ecx
jne 0x4571e0
cmp dword [0x7c1e4c], 0
jne 0x457561
lea ecx, [edi + 0xd0]
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x457565
mov eax, dword [0x4b3930]
add eax, eax
cmp dword [esp + 0x3c], eax
jle 0x457561
call fcn.004117f0
lea ecx, [edi + 0xd0]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
cmp eax, ecx
je 0x457561
nop dword [eax + eax]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov ecx, dword [eax + 0x4930]
cmp ecx, 6
je 0x457423
cmp ecx, 5
je 0x457423
cmp dword [eax + 0x49c4], 2
je 0x457423
mov esi, dword [eax + 0x14]
mov eax, dword [esi + 0x10]
cmp eax, dword [edi + 0x270]
je 0x457398
cmp ecx, 3
jne 0x457423
mov eax, dword [0x4b3930]
shl eax, 2
cmp dword [esp + 0x3c], eax
jl 0x457423
lea ecx, [esi + 0x246c]
call fcn.004117f0
lea ecx, [esi + 0x246c]
mov dword [esp + 0x48], eax
call fcn.004117e0
mov edx, eax
mov eax, dword [esp + 0x48]
cmp eax, edx
je 0x457423
mov esi, dword [edi + 0x270]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x14]
cmp dword [ecx + 0x10], esi
je 0x457398
add eax, 4
cmp eax, edx
jne 0x457382
jmp 0x457423
mov esi, dword [esp + 0xc]
mov ecx, edi
push dword [esi + 0x10]
call fcn.0045c7c0
test eax, eax
jne 0x457423
movsd xmm1, qword [esi + 0x48b8]
movsd xmm0, qword [esi + 0x48c0]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
movsd xmm2, qword [esp + 0x50]
mulsd xmm1, qword [0x4af5d0]
movsd xmm4, qword [0x4ae8a8]
movsd xmm3, qword [esp + 0x20]
divsd xmm1, xmm0
movaps xmm0, xmm1
subsd xmm0, qword [esi + 0x49b0]
andps xmm0, xmm2
comisd xmm4, xmm0
jbe 0x457408
movsd xmm0, qword [edi + 0x260]
comisd xmm0, xmm3
ja 0x457423
subsd xmm1, qword [esi + 0x49b8]
andps xmm1, xmm2
comisd xmm4, xmm1
jbe 0x45743d
comisd xmm3, xmmword [edi + 0x260]
jbe 0x45743d
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x28]
jne 0x457300
jmp 0x457561
movsd xmm2, qword [edi + 0x260]
mov ecx, esi
push 1
call fcn.0042a770
push esi
mov ecx, edi
movsd qword [esp + 0xa4], xmm0
mov dword [esp + 0x14], 1
call fcn.0045c670
test eax, eax
je 0x45747e
movsd xmm2, qword [edi + 0x260]
mov ecx, eax
push 1
call fcn.0042a770
jmp 0x457487
movsd xmm0, qword [esp + 0xa0]
cmp dword [esi + 0x4838], 1
jne 0x457561
comisd xmm0, xmmword [esi + 0x49b8]
jb 0x457561
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
movsd xmm0, qword [eax + 0x68]
subsd xmm0, qword [ecx + 0x38]
comisd xmm0, xmmword [0x4af7f8]
jbe 0x45754f
mov edx, 1
cmp dword [edi + 0xeb5d4], edx
jl 0x45754b
mov eax, dword [edi + 0xeb5dc]
mov ecx, dword [esp + 0xc]
mov esi, dword [edi + 0xeb5d8]
movsd xmm3, qword [esp + 0x20]
sub esi, eax
mov dword [esp + 0x48], esi
movsd xmm2, qword [ecx + 0x48c0]
lea ecx, [eax + 8]
mov esi, dword [edi + 0xeb5d4]
mov eax, dword [esp + 0x48]
movsd xmm0, qword [ecx]
movsd xmm1, qword [eax + ecx]
addsd xmm0, xmm0
subsd xmm1, xmm0
movaps xmm0, xmm2
subsd xmm0, xmm1
comisd xmm0, xmm3
jb 0x45752a
inc edx
add ecx, 8
cmp edx, esi
jle 0x457502
jmp 0x457561
mov eax, dword [esp + 0xc]
movaps xmm0, xmm1
mulsd xmm0, qword [0x4aed20]
movsd qword [eax + 0x48c0], xmm1
movsd qword [eax + 0x48b8], xmm0
jmp 0x457561
mov eax, edx
jmp 0x457565
push esi
mov ecx, edi
mov dword [edi + 0x1ac], 1
call fcn.004626f0
mov eax, dword [esp + 0x10]
cmp dword [0x7c1d28], 0
jne 0x45793a
cmp dword [0x7c1e4c], 0
jne 0x457797
test eax, eax
jne 0x457797
mov eax, dword [edi + 0x198]
cmp eax, 0xf
je 0x457797
cmp eax, 0xe
je 0x457797
mov eax, dword [esp + 0x80]
cmp eax, dword [0x4b3930]
jg 0x457797
lea ecx, [edi + 0xd0]
call fcn.004117f0
lea ecx, [edi + 0xd0]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov ecx, dword [esp + 0x14]
mov esi, eax
mov dword [esp + 0x18], esi
cmp ecx, esi
je 0x45778a
nop
mov esi, dword [ecx]
mov ecx, dword [esi + 0x4930]
cmp ecx, 6
je 0x457777
cmp ecx, 5
je 0x457777
cmp dword [esi + 0x49c4], 2
je 0x457777
mov eax, dword [0x4b3930]
lea eax, [eax + eax*2]
cmp dword [esp + 0x3c], eax
jl 0x457773
mov ecx, dword [esi + 0x14]
cmp dword [ecx + 0x14], 0
je 0x457773
call fcn.0046a010
push dword [esi + 0x14]
movsd xmm2, qword [edi + 0x1d0]
mov ecx, edi
movsd qword [esp + 0x34], xmm0
andps xmm0, xmmword [esp + 0x54]
movsd qword [esp + 0xa4], xmm0
call fcn.00438c90
mulsd xmm0, qword [edi + 0x1d0]
comisd xmm0, xmmword [esp + 0xa0]
ja 0x457773
movsd xmm1, qword [esi + 0x48b8]
movsd xmm0, qword [esi + 0x48c0]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
movsd xmm3, qword [esp + 0x50]
mulsd xmm1, qword [0x4af5d0]
movsd xmm5, qword [0x4ae8a8]
movsd xmm2, qword [esp + 0x30]
movsd xmm4, qword [esp + 0x20]
divsd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [esp + 0xa0], xmm1
subsd xmm0, qword [esi + 0x49b0]
andps xmm0, xmm3
comisd xmm5, xmm0
jbe 0x4576cd
comisd xmm2, xmm4
ja 0x457773
movaps xmm0, xmm1
subsd xmm0, qword [esi + 0x49b8]
andps xmm0, xmm3
comisd xmm5, xmm0
jbe 0x4576eb
comisd xmm4, xmm2
ja 0x457773
push 1
mov ecx, esi
call fcn.0042a770
movsd xmm2, qword [esp + 0xa0]
movaps xmm1, xmm2
subsd xmm1, xmm0
movsd xmm0, qword [edi + 0x2d8]
mulsd xmm0, qword [0x4ae8d8]
andps xmm1, xmmword [esp + 0x50]
comisd xmm1, xmm0
jbe 0x457744
push esi
mov ecx, edi
mov dword [esp + 0x14], 1
call fcn.0045c670
test eax, eax
je 0x457773
movsd xmm2, qword [esp + 0x30]
mov ecx, eax
push 1
call fcn.0042a770
jmp 0x457773
divsd xmm2, qword [0x4af5d0]
xorps xmm1, xmm1
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x45775e
sqrtsd xmm0, xmm0
jmp 0x457763
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mulsd xmm0, qword [esi + 0x48c0]
movsd qword [esi + 0x48b8], xmm0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add ecx, 4
mov dword [esp + 0x14], ecx
cmp ecx, eax
jne 0x4575e0
cmp dword [0x7c1d28], 0
jne 0x45793a
cmp dword [edi + 0xeb58c], 1
mov eax, dword [esp + 0x10]
jle 0x45793e
test eax, eax
jne 0x45793e
lea ecx, [edi + 0xd0]
call fcn.004117f0
lea ecx, [edi + 0xd0]
mov dword [esp + 0x1c], eax
call fcn.004117e0
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov dword [esp + 0xc], eax
cmp ecx, esi
je 0x45793a
nop dword [eax]
mov ecx, dword [ecx]
mov dword [esp + 0x18], ecx
cmp dword [ecx + 0x49c4], 2
je 0x457927
movsd xmm1, qword [ecx + 0x48b8]
movsd xmm0, qword [ecx + 0x48c0]
mov ecx, edi
mulsd xmm1, xmm1
mulsd xmm0, xmm0
push dword [edi + 0x270]
mulsd xmm1, qword [0x4af5d0]
divsd xmm1, xmm0
movsd xmm0, qword [edi + 0x260]
andps xmm0, xmmword [esp + 0x54]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0xa4], xmm1
movsd qword [esp + 0x94], xmm0
call fcn.004389a0
test eax, eax
je 0x457927
lea esi, [eax + 0x2454]
mov ecx, esi
call fcn.004117f0
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
cmp eax, ecx
je 0x457923
mov esi, dword [esp + 0x18]
mov eax, dword [eax]
lea ecx, [esp + 0x28]
push ecx
push esi
push eax
mov ecx, edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], 1
call fcn.00464bd0
test eax, eax
je 0x45790e
mov eax, dword [eax + 0x4818]
cmp eax, dword [esi + 0x4818]
jne 0x45790e
cmp dword [esp + 0x28], 1
je 0x4578ce
movsd xmm0, qword [esp + 0xa0]
comisd xmm0, xmmword [esp + 0x90]
jbe 0x45790e
mov eax, dword [esp + 0x48]
movsd xmm1, qword [0x4af7e0]
mov eax, dword [eax + 0x14]
movsd xmm0, qword [eax + 0x68]
subsd xmm0, qword [eax + 0x30]
andps xmm0, xmmword [esp + 0x50]
comisd xmm1, xmm0
jbe 0x457a93
movsd xmm0, qword [esi + 0x4938]
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jnp 0x457a93
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x30]
jne 0x457881
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
add ecx, 4
mov dword [esp + 0x1c], ecx
cmp ecx, esi
jne 0x4577e0
mov eax, dword [esp + 0x10]
cmp dword [0x7c1e4c], 0
jne 0x457ce0
test eax, eax
jne 0x457ce0
lea ecx, [edi + 0xd0]
call fcn.004117f0
lea ecx, [edi + 0xd0]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov ecx, dword [esp + 0x14]
mov esi, eax
mov dword [esp + 0xc], esi
cmp ecx, esi
je 0x457ce0
nop
mov esi, dword [ecx]
mov dword [esp + 0x30], esi
mov ecx, dword [esi + 0x4930]
cmp ecx, 6
je 0x457a77
cmp ecx, 5
je 0x457a77
cmp dword [esi + 0x49c4], 2
je 0x457a77
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 0x10]
cmp eax, dword [edi + 0x270]
jne 0x457a73
add ecx, 0x246c
call fcn.004117d0
cmp eax, 1
jne 0x457a73
push dword [esi + 0x10]
mov ecx, edi
call fcn.0045c7c0
test eax, eax
jne 0x457a73
movsd xmm1, qword [esi + 0x48b8]
movsd xmm0, qword [esi + 0x48c0]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
movsd xmm2, qword [esp + 0x50]
mulsd xmm1, qword [0x4af5d0]
movsd xmm4, qword [0x4ae8a8]
movsd xmm5, qword [esp + 0xb0]
movsd xmm3, qword [esp + 0x20]
divsd xmm1, xmm0
movaps xmm0, xmm1
subsd xmm0, qword [esi + 0x49b0]
andps xmm0, xmm2
comisd xmm4, xmm0
jbe 0x457a49
movsd xmm0, qword [edi + 0x260]
xorps xmm0, xmm5
comisd xmm3, xmm0
ja 0x457a73
subsd xmm1, qword [esi + 0x49b8]
andps xmm1, xmm2
comisd xmm4, xmm1
jbe 0x457bc5
movsd xmm0, qword [edi + 0x260]
xorps xmm0, xmm5
comisd xmm0, xmm3
jbe 0x457bc5
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
add ecx, 4
mov dword [esp + 0x14], ecx
cmp ecx, eax
jne 0x457980
mov eax, dword [esp + 0x10]
jmp 0x457d00
movsd xmm2, qword [edi + 0x260]
mov ecx, esi
push 1
call fcn.0042a770
push esi
mov ecx, edi
movsd qword [esp + 0x94], xmm0
mov dword [esp + 0x14], 1
call fcn.0045c670
test eax, eax
je 0x457ad4
movsd xmm2, qword [edi + 0x260]
mov ecx, eax
push 1
call fcn.0042a770
jmp 0x457add
movsd xmm0, qword [esp + 0x90]
cmp dword [esi + 0x4838], 1
jne 0x45793a
comisd xmm0, xmmword [esi + 0x49b8]
jb 0x45793a
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
movsd xmm0, qword [eax + 0x68]
subsd xmm0, qword [ecx + 0x38]
comisd xmm0, xmmword [0x4af7f8]
jbe 0x457ba7
mov edx, 1
cmp dword [edi + 0xeb5d4], edx
jl 0x457bbe
mov eax, dword [edi + 0xeb5dc]
movsd xmm2, qword [esi + 0x48c0]
mov esi, dword [edi + 0xeb5d8]
movsd xmm3, qword [esp + 0x20]
sub esi, eax
lea ecx, [eax + 8]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x18]
mov eax, dword [edi + 0xeb5d4]
movsd xmm0, qword [ecx]
mov edi, dword [esp + 0x30]
addsd xmm0, xmm0
movsd xmm1, qword [edi + ecx]
mov edi, dword [esp + 0x6c]
subsd xmm1, xmm0
movaps xmm0, xmm2
subsd xmm0, xmm1
comisd xmm0, xmm3
jb 0x457b87
inc edx
add ecx, 8
cmp edx, eax
jle 0x457b54
jmp 0x45793a
movaps xmm0, xmm1
movsd qword [esi + 0x48c0], xmm1
mulsd xmm0, qword [0x4aed20]
movsd qword [esi + 0x48b8], xmm0
jmp 0x45793a
push esi
mov ecx, edi
mov dword [edi + 0x1ac], 1
call fcn.004626f0
jmp 0x45793a
mov eax, edx
jmp 0x45793e
movsd xmm2, qword [edi + 0x260]
mov ecx, esi
xorps xmm2, xmm5
push 1
call fcn.0042a770
push esi
mov ecx, edi
movsd qword [esp + 0x94], xmm0
call fcn.0045c670
test eax, eax
je 0x457c09
movsd xmm2, qword [edi + 0x260]
mov ecx, eax
xorps xmm2, xmmword [esp + 0xb0]
push 1
call fcn.0042a770
jmp 0x457c12
movsd xmm0, qword [esp + 0x90]
mov eax, 1
mov dword [esp + 0x10], eax
cmp dword [esi + 0x4838], eax
jne 0x457d00
comisd xmm0, xmmword [0x4af5d0]
jb 0x457d00
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
movsd xmm0, qword [eax + 0x68]
subsd xmm0, qword [ecx + 0x38]
comisd xmm0, xmmword [0x4af7f8]
jbe 0x457ce6
mov edx, 1
cmp dword [edi + 0xeb5d4], edx
jl 0x457cfe
mov eax, dword [edi + 0xeb5dc]
movsd xmm2, qword [esi + 0x48c0]
mov esi, dword [edi + 0xeb5d8]
movsd xmm3, qword [esp + 0x20]
sub esi, eax
lea ecx, [eax + 8]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x30]
mov eax, dword [edi + 0xeb5d4]
movsd xmm0, qword [ecx]
mov edi, dword [esp + 0x48]
addsd xmm0, xmm0
movsd xmm1, qword [edi + ecx]
mov edi, dword [esp + 0x6c]
subsd xmm1, xmm0
movaps xmm0, xmm2
subsd xmm0, xmm1
comisd xmm0, xmm3
jb 0x457cc5
inc edx
add ecx, 8
cmp edx, eax
jle 0x457c91
mov eax, dword [esp + 0x10]
jmp 0x457d00
movaps xmm0, xmm1
movsd qword [esi + 0x48c0], xmm1
mulsd xmm0, qword [0x4aed20]
movsd qword [esi + 0x48b8], xmm0
mov eax, dword [esp + 0x10]
jmp 0x457d00
push esi
mov ecx, edi
mov dword [edi + 0x1ac], 1
call fcn.004626f0
mov eax, dword [esp + 0x10]
jmp 0x457d00
mov eax, edx
cmp dword [0x7c1d14], 5
je 0x457d45
cmp dword [0x7c1d28], 0
jne 0x457d45
cmp dword [0x7c1e4c], 0
jne 0x457f81
mov ecx, dword [esp + 0x3c]
test eax, eax
jne 0x457d56
mov eax, dword [esp + 0xac]
inc eax
imul eax, dword [0x4b3930]
cmp ecx, eax
jl 0x457d56
mov ecx, edi
call fcn.0045d890
mov dword [esp + 0x10], eax
cmp dword [0x7c1e4c], 0
jne 0x457f81
mov ecx, dword [esp + 0x3c]
cmp dword [0x7c1d14], 5
je 0x458364
cmp dword [edi + 0x198], 0x15
je 0x457f81
mov eax, dword [0x4b3930]
lea eax, [eax + eax*2]
cmp ecx, eax
jl 0x457f81
lea ecx, [edi + 0xd0]
call fcn.004117f0
lea ecx, [edi + 0xd0]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov esi, dword [esp + 0x14]
mov dword [esp + 0xc], eax
cmp esi, eax
je 0x457f81
nop word [eax + eax]
mov esi, dword [esi]
cmp dword [esi + 0x4930], 5
jne 0x457f6e
cmp dword [esi + 0x49c4], 2
je 0x457f6e
mov ecx, dword [esi + 0x14]
call fcn.0046a010
push dword [esi + 0x14]
movsd xmm2, qword [edi + 0x1d0]
mov ecx, edi
movsd qword [esp + 0x4c], xmm0
andps xmm0, xmmword [esp + 0x54]
movsd qword [esp + 0x94], xmm0
call fcn.00438c90
mulsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, qword [esp + 0xd8]
comisd xmm0, xmmword [esp + 0x90]
ja 0x457f6a
movsd xmm1, qword [esi + 0x48b8]
movsd xmm0, qword [esi + 0x48c0]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
movsd xmm3, qword [esp + 0x50]
mulsd xmm1, qword [0x4af5d0]
movsd xmm5, qword [0x4ae8a8]
movsd xmm2, qword [esp + 0x48]
movsd xmm4, qword [esp + 0x20]
divsd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [esp + 0x90], xmm1
subsd xmm0, qword [esi + 0x49b0]
andps xmm0, xmm3
comisd xmm5, xmm0
jbe 0x457e7f
comisd xmm2, xmm4
ja 0x457f6a
movaps xmm0, xmm1
subsd xmm0, qword [esi + 0x49b8]
andps xmm0, xmm3
comisd xmm5, xmm0
jbe 0x457e9d
comisd xmm4, xmm2
ja 0x457f6a
movsd xmm2, qword [esp + 0x78]
mov ecx, edi
push esi
movsd qword [esp + 0x2c], xmm2
call fcn.0045c670
mov dword [esp + 0x30], eax
test eax, eax
je 0x457ec3
movsd xmm0, qword [0x4aed20]
jmp 0x457ec9
movsd xmm0, qword [esp + 0x28]
mulsd xmm0, qword [esp + 0x48]
mov ecx, esi
push 1
mulsd xmm0, qword [0x4aed20]
movaps xmm2, xmm0
movsd qword [esp + 0x2c], xmm0
call fcn.0042a770
movsd xmm3, qword [esp + 0x90]
movaps xmm1, xmm3
subsd xmm1, xmm0
movsd xmm0, qword [edi + 0x2d8]
mulsd xmm0, qword [0x4ae8d8]
andps xmm1, xmmword [esp + 0x50]
mulsd xmm0, qword [edi + 0x2d0]
comisd xmm1, xmm0
jbe 0x457f3b
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x10], 1
test ecx, ecx
je 0x457f6a
movsd xmm2, qword [esp + 0x28]
push 1
call fcn.0042a770
jmp 0x457f6a
divsd xmm3, qword [0x4af5d0]
xorps xmm1, xmm1
movaps xmm0, xmm3
ucomisd xmm1, xmm0
ja 0x457f55
sqrtsd xmm0, xmm0
jmp 0x457f5a
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mulsd xmm0, qword [esi + 0x48c0]
movsd qword [esi + 0x48b8], xmm0
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x14], esi
cmp esi, eax
jne 0x457db0
cmp dword [0x7c1d14], 5
je 0x458357
cmp dword [0x7c1d28], 0
jne 0x458357
cmp dword [0x7c1e4c], 0
mov eax, dword [esp + 0x10]
jne 0x45899c
test eax, eax
jne 0x45899c
cmp dword [esp + 0xac], eax
jne 0x458370
mov eax, dword [esp + 0x3c]
cmp eax, dword [0x4b3930]
jl 0x458750
lea esi, [edi + 0xd0]
mov ecx, esi
call fcn.004117f0
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.004117e0
mov ecx, dword [esp + 0x30]
mov edx, eax
cmp ecx, edx
je 0x458183
nop word [eax + eax]
mov esi, dword [ecx]
cmp dword [esi + 0x4930], 6
jne 0x4580a2
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x10]
cmp eax, dword [edi + 0x270]
jne 0x4580a2
movsd xmm1, qword [esi + 0x48b8]
movsd xmm0, qword [esi + 0x48c0]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
movsd xmm2, qword [esp + 0x50]
mulsd xmm1, qword [0x4af5d0]
movsd xmm4, qword [0x4ae8a8]
movsd xmm3, qword [esp + 0x20]
divsd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [esp + 0x90], xmm1
subsd xmm0, qword [esi + 0x49b0]
andps xmm0, xmm2
comisd xmm4, xmm0
jbe 0x458084
movsd xmm0, qword [edi + 0x260]
comisd xmm0, xmm3
ja 0x4580a2
movaps xmm0, xmm1
subsd xmm0, qword [esi + 0x49b8]
andps xmm0, xmm2
comisd xmm4, xmm0
jbe 0x4580b2
comisd xmm3, xmmword [edi + 0x260]
jbe 0x4580b2
add ecx, 4
cmp ecx, edx
jne 0x458000
jmp 0x45817d
movsd xmm0, qword [esp + 0x78]
mov ecx, edi
push esi
movsd qword [esp + 0x4c], xmm0
call fcn.0045c670
mov dword [esp + 0x30], eax
test eax, eax
je 0x4580de
movsd xmm0, qword [0x4aed20]
movsd qword [esp + 0x48], xmm0
jmp 0x4580e4
movsd xmm0, qword [esp + 0x48]
movaps xmm2, xmm0
mov ecx, esi
mulsd xmm2, qword [edi + 0x260]
push 1
call fcn.0042a770
movsd xmm3, qword [esp + 0x90]
movsd xmm1, qword [edi + 0x2d8]
subsd xmm0, xmm3
mulsd xmm1, qword [0x4ae8d8]
andps xmm0, xmmword [esp + 0x50]
comisd xmm0, xmm1
jbe 0x45814e
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x10], 1
test ecx, ecx
je 0x458357
movsd xmm2, qword [esp + 0x48]
mulsd xmm2, qword [edi + 0x260]
push 1
call fcn.0042a770
jmp 0x458357
divsd xmm3, qword [0x4af5d0]
xorps xmm1, xmm1
movaps xmm0, xmm3
ucomisd xmm1, xmm0
ja 0x458168
sqrtsd xmm0, xmm0
jmp 0x45816d
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mulsd xmm0, qword [esi + 0x48c0]
movsd qword [esi + 0x48b8], xmm0
lea esi, [edi + 0xd0]
mov eax, dword [0x4b3930]
add eax, eax
cmp dword [esp + 0x3c], eax
jl 0x458357
mov ecx, esi
call fcn.004117f0
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.004117e0
mov ecx, dword [esp + 0x30]
mov edx, eax
cmp ecx, edx
je 0x458357
nop dword [eax]
nop dword [eax + eax]
mov esi, dword [ecx]
cmp dword [esi + 0x4930], 6
jne 0x458262
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x10]
cmp eax, dword [edi + 0x270]
jne 0x458262
movsd xmm1, qword [esi + 0x48b8]
movsd xmm0, qword [esi + 0x48c0]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
movsd xmm2, qword [esp + 0x50]
mulsd xmm1, qword [0x4af5d0]
movsd xmm4, qword [0x4ae8a8]
movsd xmm3, qword [esp + 0x20]
divsd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [esp + 0x90], xmm1
subsd xmm0, qword [esi + 0x49b0]
andps xmm0, xmm2
comisd xmm4, xmm0
jbe 0x458244
movsd xmm0, qword [edi + 0x260]
comisd xmm0, xmm3
ja 0x458262
movaps xmm0, xmm1
subsd xmm0, qword [esi + 0x49b8]
andps xmm0, xmm2
comisd xmm4, xmm0
jbe 0x458272
comisd xmm3, xmmword [edi + 0x260]
jbe 0x458272
add ecx, 4
cmp ecx, edx
jne 0x4581c0
jmp 0x458357
movsd xmm0, qword [esp + 0x78]
mov ecx, edi
push esi
movsd qword [esp + 0x4c], xmm0
call fcn.0045c670
mov dword [esp + 0x30], eax
test eax, eax
je 0x45829e
movsd xmm0, qword [0x4aed20]
movsd qword [esp + 0x48], xmm0
jmp 0x4582a4
movsd xmm0, qword [esp + 0x48]
movsd xmm2, qword [edi + 0x260]
mov ecx, esi
xorps xmm2, xmmword [esp + 0xb0]
mulsd xmm2, xmm0
push 1
mulsd xmm2, qword [0x4aed20]
call fcn.0042a770
movsd xmm2, qword [esp + 0x90]
movsd xmm1, qword [edi + 0x2d8]
subsd xmm0, xmm2
mulsd xmm1, qword [0x4ae8d8]
andps xmm0, xmmword [esp + 0x50]
comisd xmm0, xmm1
jbe 0x458328
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x10], 1
test ecx, ecx
je 0x458357
movsd xmm2, qword [edi + 0x260]
xorps xmm2, xmmword [esp + 0xb0]
mulsd xmm2, qword [esp + 0x48]
push 1
mulsd xmm2, qword [0x4aed20]
call fcn.0042a770
jmp 0x458357
divsd xmm2, qword [0x4af5d0]
xorps xmm1, xmm1
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x458342
sqrtsd xmm0, xmm0
jmp 0x458347
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mulsd xmm0, qword [esi + 0x48c0]
movsd qword [esi + 0x48b8], xmm0
cmp dword [0x7c1e4c], 0
jne 0x458998
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x45899c
mov eax, dword [esp + 0x3c]
cmp eax, dword [0x4b3930]
jl 0x458750
lea ecx, [edi + 0xd0]
call fcn.004117f0
lea ecx, [edi + 0xd0]
mov dword [esp + 0x1c], eax
call fcn.004117e0
mov edx, dword [esp + 0x1c]
mov esi, eax
mov dword [esp + 0xc], eax
cmp edx, esi
je 0x458737
nop dword [eax]
mov edx, dword [edx]
mov dword [esp + 0x14], edx
cmp dword [edx + 0x4930], 5
jne 0x458724
cmp dword [edx + 0x49c4], 2
je 0x458724
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx + 0x10]
cmp eax, dword [edi + 0x270]
jne 0x458724
movsd xmm1, qword [edx + 0x48b8]
movsd xmm0, qword [edx + 0x48c0]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
movsd xmm5, qword [esp + 0x50]
mulsd xmm1, qword [0x4af5d0]
movsd xmm2, qword [0x4ae8a8]
movsd xmm6, qword [esp + 0x20]
divsd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [esp + 0x90], xmm1
subsd xmm0, qword [edx + 0x49b0]
andps xmm0, xmm5
comisd xmm2, xmm0
jbe 0x458449
movsd xmm0, qword [edi + 0x260]
comisd xmm0, xmm6
ja 0x458724
movaps xmm0, xmm1
subsd xmm0, qword [edx + 0x49b8]
andps xmm0, xmm5
comisd xmm2, xmm0
jbe 0x458589
comisd xmm6, xmmword [edi + 0x260]
jbe 0x458589
movsd xmm4, qword [edi + 0xeb5c0]
comisd xmm4, xmm6
jbe 0x458724
movsd xmm7, qword [esp + 0x78]
movsd xmm1, qword [ecx + 0x68]
movaps xmm0, xmm7
movsd xmm2, qword [edx + 0x4938]
subsd xmm0, xmm4
subsd xmm2, qword [0x4af858]
movsd xmm4, qword [0x4af858]
movaps xmm3, xmm1
mulsd xmm3, qword [0x4aee60]
mulsd xmm2, xmm0
movaps xmm0, xmm3
subsd xmm0, xmm4
comisd xmm0, xmm2
jb 0x4584ce
movsd qword [ecx + 0x68], xmm3
jmp 0x4584e8
subsd xmm1, xmm4
subsd xmm1, xmm2
andps xmm1, xmm5
comisd xmm1, xmm7
jbe 0x4584f0
addsd xmm2, xmm4
movsd qword [ecx + 0x68], xmm2
mov dword [esp + 0x10], 1
mov eax, dword [edi + 0xeb58c]
sub eax, 2
cmp eax, 1
ja 0x458724
cmp dword [esp + 0x10], 0
jne 0x458724
movsd xmm0, qword [edi + 0xeb5a8]
comisd xmm0, xmm6
jbe 0x458724
mov esi, dword [edx + 0x10]
mov dword [esp + 0x28], 0
lea ecx, [esi + 0x2454]
call fcn.004117f0
lea ecx, [esi + 0x2454]
mov dword [esp + 0x30], eax
call fcn.004117e0
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp esi, eax
je 0x45856d
push 0
push 0
push 1
lea eax, [esp + 0x34]
mov ecx, edi
push eax
push dword [esi]
call fcn.00463b70
add esi, 4
cmp esi, dword [esp + 0x48]
jne 0x458550
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0xc]
je 0x458724
mov dword [esp + 0x10], 1
jmp 0x458724
cmp dword [0x7c1d14], 5
jne 0x458625
mov eax, dword [edi + 0xeb58c]
sub eax, 2
cmp eax, 1
ja 0x458625
movsd xmm0, qword [edi + 0xeb5a8]
comisd xmm0, xmm6
jbe 0x458625
mov esi, dword [edx + 0x10]
mov dword [esp + 0x28], 0
lea ecx, [esi + 0x2454]
call fcn.004117f0
lea ecx, [esi + 0x2454]
mov dword [esp + 0x30], eax
call fcn.004117e0
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp esi, eax
je 0x45860d
nop dword [eax + eax]
push 0
push 0
push 1
lea eax, [esp + 0x34]
mov ecx, edi
push eax
push dword [esi]
call fcn.00463b70
add esi, 4
cmp esi, dword [esp + 0x48]
jne 0x4585f0
cmp dword [esp + 0x28], 0
je 0x458621
mov dword [esp + 0x10], 1
jmp 0x458720
mov edx, dword [esp + 0x14]
movsd xmm0, qword [esp + 0x78]
mov ecx, edi
push edx
movsd qword [esp + 0x34], xmm0
call fcn.0045c670
mov esi, eax
test esi, esi
jne 0x45866c
cmp dword [0x7c1d14], 5
jne 0x45867c
movsd xmm0, qword [edi + 0x1d0]
mulsd xmm0, qword [esp + 0xd8]
movsd xmm1, qword [edi + 0x260]
andps xmm1, xmmword [esp + 0x50]
comisd xmm0, xmm1
jbe 0x45867c
movsd xmm2, qword [0x4aed20]
movsd qword [esp + 0x30], xmm2
jmp 0x458682
movsd xmm2, qword [esp + 0x30]
mulsd xmm2, qword [edi + 0x260]
mov ecx, dword [esp + 0x14]
push 1
call fcn.0042a770
movsd xmm2, qword [esp + 0x90]
movaps xmm1, xmm2
subsd xmm1, xmm0
movsd xmm0, qword [edi + 0x2d8]
mulsd xmm0, qword [0x4ae8d8]
andps xmm1, xmmword [esp + 0x50]
mulsd xmm0, qword [edi + 0x2d0]
comisd xmm1, xmm0
jbe 0x4586ed
mov dword [esp + 0x10], 1
test esi, esi
je 0x458720
movsd xmm2, qword [esp + 0x30]
mov ecx, esi
mulsd xmm2, qword [edi + 0x260]
push 1
call fcn.0042a770
jmp 0x458720
divsd xmm2, qword [0x4af5d0]
xorps xmm1, xmm1
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x458707
sqrtsd xmm0, xmm0
jmp 0x45870c
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mov eax, dword [esp + 0x14]
mulsd xmm0, qword [eax + 0x48c0]
movsd qword [eax + 0x48b8], xmm0
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
add edx, 4
mov dword [esp + 0x1c], edx
cmp edx, esi
jne 0x4583b0
cmp dword [0x7c1e4c], 0
mov eax, dword [esp + 0x10]
jne 0x45899c
test eax, eax
jne 0x45899c
mov eax, dword [0x4b3930]
mov ecx, dword [esp + 0x3c]
add eax, eax
cmp ecx, eax
jl 0x45896f
lea ecx, [edi + 0xd0]
call fcn.004117f0
lea ecx, [edi + 0xd0]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov esi, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0xc], eax
cmp esi, edx
je 0x45895a
nop
mov esi, dword [esi]
cmp dword [esi + 0x4930], 5
jne 0x458947
cmp dword [esi + 0x49c4], 2
je 0x458947
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 0x10]
cmp eax, dword [edi + 0x270]
jne 0x458947
add ecx, 0x246c
call fcn.004117d0
cmp eax, 1
jne 0x458943
movsd xmm1, qword [esi + 0x48b8]
movsd xmm0, qword [esi + 0x48c0]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
movsd xmm2, qword [esp + 0x50]
mulsd xmm1, qword [0x4af5d0]
movsd xmm4, qword [0x4ae8a8]
movsd xmm3, qword [esp + 0x20]
divsd xmm1, xmm0
movaps xmm0, xmm1
movsd qword [esp + 0x90], xmm1
subsd xmm0, qword [esi + 0x49b0]
andps xmm0, xmm2
comisd xmm4, xmm0
jbe 0x458839
movsd xmm0, qword [edi + 0x260]
comisd xmm0, xmm3
ja 0x458943
movaps xmm0, xmm1
subsd xmm0, qword [esi + 0x49b8]
andps xmm0, xmm2
comisd xmm4, xmm0
jbe 0x45885b
comisd xmm3, xmmword [edi + 0x260]
ja 0x458943
movsd xmm0, qword [esp + 0x78]
mov ecx, edi
push esi
movsd qword [esp + 0x4c], xmm0
call fcn.0045c670
mov dword [esp + 0x30], eax
test eax, eax
je 0x458887
movsd xmm0, qword [0x4aed20]
movsd qword [esp + 0x48], xmm0
jmp 0x45888d
movsd xmm0, qword [esp + 0x48]
movsd xmm2, qword [edi + 0x260]
mov ecx, esi
xorps xmm2, xmmword [esp + 0xb0]
mulsd xmm2, qword [0x4aed20]
push 1
mulsd xmm2, xmm0
call fcn.0042a770
movsd xmm2, qword [esp + 0x90]
movaps xmm1, xmm2
subsd xmm1, xmm0
movsd xmm0, qword [edi + 0x2d0]
mulsd xmm0, qword [0x4ae8d8]
andps xmm1, xmmword [esp + 0x50]
comisd xmm1, xmm0
jbe 0x458914
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x10], 1
test ecx, ecx
je 0x458943
movsd xmm2, qword [edi + 0x260]
xorps xmm2, xmmword [esp + 0xb0]
mulsd xmm2, qword [0x4aed20]
push 1
mulsd xmm2, qword [esp + 0x4c]
call fcn.0042a770
jmp 0x458943
divsd xmm2, qword [0x4af5d0]
xorps xmm1, xmm1
movaps xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x45892e
sqrtsd xmm0, xmm0
jmp 0x458933
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mulsd xmm0, qword [esi + 0x48c0]
movsd qword [esi + 0x48b8], xmm0
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x14], esi
cmp esi, edx
jne 0x458790
cmp dword [0x7c1e4c], 0
mov eax, dword [esp + 0x10]
jne 0x45899c
test eax, eax
jne 0x45899c
mov ecx, dword [esp + 0x3c]
mov eax, dword [0x4b3930]
lea eax, [eax + eax*2]
cmp ecx, eax
jl 0x458998
mov ecx, edi
call fcn.004375a0
cmp eax, 1
jne 0x458998
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
jmp 0x455d0b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc8]
cmp ecx, 0x32
jle 0x4589c3
movsd xmm0, qword [edi + 0x260]
andps xmm0, xmmword [esp + 0x50]
comisd xmm0, xmmword [0x4aefc8]
ja 0x458b42
test eax, eax
je 0x458b42
mov eax, dword [edi + 0x270]
inc ecx
movsd xmm3, qword [esp + 0x78]
xor edx, edx
cmp dword [esp + 0x9c], eax
movsd xmm1, qword [esp + 0x20]
cmovne ecx, edx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x80]
inc eax
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x68]
cmp dword [esp + 0x84], ecx
mov dword [esp + 0x84], ecx
mov ecx, 1
cmove edx, eax
mov dword [esp + 0x68], 0
xor eax, eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x10], 0
mov dword [0x7c1cf0], ecx
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x88], xmm1
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
cmp dword [edi + 0x1ac], eax
je 0x459fe0
lea ecx, [edi + 0x154]
call fcn.004117f0
mov esi, eax
lea ecx, [edi + 0x154]
mov dword [esp + 0x28], esi
call fcn.004117e0
mov dword [esp + 0x30], eax
cmp esi, eax
je 0x458afe
nop dword [eax]
nop dword [eax + eax]
mov esi, dword [esi]
movsd xmm0, qword [esi + 0x68]
mov eax, dword [esi + 0x2450]
movsd qword [esi + 0x28], xmm0
movsd xmm0, qword [esp + 0x20]
movsd qword [esi + 0x68], xmm0
test eax, eax
je 0x458aed
push dword [eax + 8]
mov ecx, edi
call fcn.00438ba0
test eax, eax
je 0x458aed
cmp dword [eax + 0x58], 0
movsd xmm0, qword [esp + 0x20]
jne 0x458ad9
mov ecx, dword [esi + 0x2450]
movsd qword [ecx + 0x108], xmm0
cmp dword [eax + 0x58], 1
jne 0x458aed
mov eax, dword [esi + 0x2450]
movsd qword [eax + 0x118], xmm0
mov esi, dword [esp + 0x28]
add esi, 4
mov dword [esp + 0x28], esi
cmp esi, dword [esp + 0x30]
jne 0x458a90
mov ecx, edi
call fcn.0045d660
mov ecx, edi
call fcn.0045cdf0
cmp dword [edi + 0x19c], 0
jne 0x458b1f
mov dword [edi + 0x19c], 3
mov ecx, edi
call fcn.0045dde0
mov ecx, dword [0x7c1cf0]
movsd xmm3, qword [esp + 0x70]
inc ecx
mov dword [edi + 0x1ac], 0
jmp 0x45511f
mov ecx, dword [0x7c1cf0]
cmp ecx, 0x64
jge 0x459fe6
mov edx, dword [edi + 0x198]
cmp dword [edi + 0x24c], edx
jne 0x458b68
cmp edx, 1
je 0x459fe6
cmp dword [edi + 0x20c], 1
mov esi, dword [esp + 0x3c]
movsd xmm3, qword [esp + 0x70]
jne 0x458bb4
cmp dword [edi + 0x1a8], 1
jne 0x458bb4
mov eax, dword [0x4b3930]
shl eax, 2
cmp esi, eax
jl 0x458bb4
ucomisd xmm3, qword [esp + 0x78]
lahf
test ah, 0x44
jp 0x458bb4
mov dword [esp + 0x10], 0
inc ecx
mov dword [0x4b3924], 0xffffffff
jmp 0x45511f
cmp dword [edi + 0x1a8], 0
jle 0x459f96
movsd xmm1, qword [esp + 0x20]
movsd xmm2, qword [esp + 0x88]
ucomisd xmm2, xmm1
lahf
test ah, 0x44
jnp 0x458ff4
movsd xmm0, qword [edi + 0x1b0]
comisd xmm0, xmm2
movsd xmm0, qword [esp + 0xd0]
jb 0x458ffd
comisd xmm0, xmm3
jbe 0x458ffd
cmp dword [esp + 0x44], 1
je 0x459008
cmp ecx, 0x32
jle 0x458c20
cmp dword [edi + 0xeb58c], 1
jg 0x459008
cmp edx, 0xf
je 0x459a9a
cmp edx, 0xe
je 0x459a9a
ucomisd xmm2, xmm1
lahf
test ah, 0x44
jnp 0x459a37
comisd xmm2, xmmword [edi + 0x1b0]
ja 0x459a37
comisd xmm0, xmm3
ja 0x459a37
cmp ecx, 2
jle 0x459a37
cmp dword [0x7c1d28], 1
jne 0x458c80
cmp dword [edi + 0x2bc], 0
jne 0x458c80
cmp dword [0x7c1e4c], 0
je 0x459a37
mulsd xmm3, qword [0x4aede8]
dec ecx
mov dword [0x7c1cf0], ecx
lea ecx, [edi + 0x154]
movsd qword [esp + 0x70], xmm3
call fcn.004117f0
lea ecx, [edi + 0x154]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov ecx, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], esi
cmp ecx, edx
je 0x459fba
mov edx, dword [ecx]
mov dword [esp + 0x18], edx
mov ecx, dword [edx + 0x14]
test ecx, ecx
jle 0x459a17
mov eax, dword [edi + 0x1bc]
movsd xmm3, qword [esp + 0x20]
movsd xmm0, qword [eax + ecx*8 - 8]
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jnp 0x459a13
mov eax, dword [edx + 0x20]
cmp eax, 1
je 0x459a13
cmp eax, 0xffffffff
jne 0x458d59
lea esi, [edx + 0x246c]
mov ecx, esi
call fcn.004117f0
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.004117e0
mov ecx, dword [esp + 0x30]
mov edx, eax
cmp ecx, edx
je 0x458d4f
nop dword [eax]
mov eax, dword [ecx]
cmp dword [eax + 0x4840], 0
je 0x458d48
mov eax, dword [eax + 0x14]
cmp dword [eax + 0x20], 1
jg 0x459a13
add ecx, 4
cmp ecx, edx
jne 0x458d30
mov edx, dword [esp + 0x18]
movsd xmm3, qword [esp + 0x20]
cmp dword [edx + 0x20], 0xffffffff
movsd xmm1, qword [esp + 0x78]
jne 0x458d6d
movsd xmm1, qword [0x4aed20]
cmp dword [0x7c1e4c], 0
mov eax, dword [edi + 0x1bc]
mov ecx, dword [edx + 0x14]
movsd xmm0, qword [esp + 0x70]
movsd xmm4, qword [0x4af8b0]
movsd xmm2, qword [edx + 0x50]
mulsd xmm0, qword [eax + ecx*8 - 8]
mulsd xmm0, xmm4
mulsd xmm0, xmm1
addsd xmm0, xmm2
movsd qword [edx + 0x68], xmm0
movaps xmm1, xmm0
jne 0x458dca
movsd xmm4, qword [0x4af858]
comisd xmm4, xmm0
movsd xmm4, qword [0x4af8b0]
jbe 0x458dca
movsd qword [edx + 0x68], xmm2
movaps xmm1, xmm2
cmp dword [0x7c1e4c], 0
movaps xmm0, xmm1
je 0x458dec
movsd xmm2, qword [0x4af820]
comisd xmm2, xmm1
jbe 0x458dec
movsd qword [edx + 0x68], xmm2
movaps xmm0, xmm2
comisd xmm0, xmm4
jbe 0x458e9f
cmp dword [0x7c1d28], 1
movsd qword [edx + 0x68], xmm4
jne 0x458e9f
mov eax, dword [edx + 0x2450]
test eax, eax
je 0x458e35
movsd xmm0, qword [eax + 0xa0]
comisd xmm0, xmm3
jbe 0x458e35
subsd xmm0, qword [0x4aeb88]
mulsd xmm0, qword [0x4af848]
movsd qword [edx + 0x68], xmm0
lea esi, [edx + 0x2454]
mov ecx, esi
call fcn.004117f0
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.004117e0
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp esi, eax
je 0x458e9b
nop dword [eax]
push 0
push 0x4b3a68
push 0x4b3b30
push 0
push dword [esi]
call sub.VCRUNTIME140.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x458e92
cmp dword [eax + 0x4948], 2
jne 0x458e92
cmp dword [eax + 0x49bc], 1
je 0x4598b3
add esi, 4
cmp esi, dword [esp + 0x48]
jne 0x458e60
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x20], 0xffffffff
jne 0x4598ee
lea esi, [edx + 0x246c]
mov ecx, esi
call fcn.004117f0
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.004117e0
mov esi, eax
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x28], esi
je 0x4598ea
mov edi, dword [esp + 0x28]
nop word [eax + eax]
mov esi, dword [edi]
cmp dword [esi + 0x4840], 0
je 0x4598d5
push 0
push 0x4b3abc
push 0x4b3b30
push 0
push esi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov ecx, eax
add esp, 0x14
test ecx, ecx
je 0x4598d1
cmp dword [ecx + 0x49d8], 2
mov eax, dword [esp + 0x18]
movsd xmm3, qword [eax + 0x68]
movaps xmm1, xmm3
jge 0x458f2d
subsd xmm1, qword [ecx + 0x4870]
movsd xmm2, qword [ecx + 0x4890]
movsd xmm4, qword [esp + 0x20]
ucomisd xmm2, xmm4
lahf
test ah, 0x44
jnp 0x458f59
subsd xmm1, qword [ecx + 0x4898]
mulsd xmm1, xmm2
subsd xmm1, qword [ecx + 0x48a0]
cmp dword [ecx + 0x49d8], 2
jl 0x458f6a
subsd xmm1, qword [ecx + 0x4870]
mov eax, dword [esi + 0x14]
movsd xmm0, qword [eax + 0x38]
comisd xmm1, xmm0
jbe 0x4598d1
mov esi, dword [ecx + 0x49d8]
subsd xmm1, xmm0
cmp esi, 2
jl 0x458f93
addsd xmm0, qword [ecx + 0x4870]
ucomisd xmm2, xmm4
lahf
test ah, 0x44
jnp 0x458fb1
addsd xmm0, qword [ecx + 0x48a0]
divsd xmm0, xmm2
addsd xmm0, qword [ecx + 0x4898]
cmp esi, 2
jge 0x458fbe
addsd xmm0, qword [ecx + 0x4870]
subsd xmm3, xmm1
movsd xmm1, qword [0x4af858]
comisd xmm3, xmm1
ja 0x458fd3
movaps xmm3, xmm0
comisd xmm1, xmm3
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
movsd qword [edx + 0x68], xmm3
jbe 0x4598d9
movsd qword [edx + 0x68], xmm1
jmp 0x4598d9
movsd xmm0, qword [esp + 0xd0]
cmp dword [esp + 0x44], 1
jne 0x458c20
mov ecx, edi
call fcn.004375a0
mov dword [edi + 0x1a4], 0
cmp eax, 1
jne 0x45902f
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
jmp 0x455d11
mov eax, dword [edi + 0xeb58c]
mov dword [edi + 0xc], 0x64
mov dword [0x7c1cf0], 0x64
test eax, eax
je 0x45a002
cmp eax, 1
jne 0x459525
lea ecx, [edi + 0x58]
mov dword [esp + 0x18], 0
call fcn.004117f0
lea ecx, [edi + 0x58]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
cmp eax, ecx
je 0x459317
nop word [eax + eax]
push 0
push 0x4b3a68
push 0x4b3b30
push 0
push dword [eax]
call sub.VCRUNTIME140.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
test esi, esi
je 0x459136
mov eax, dword [esi + 0x14]
test eax, eax
je 0x459136
mov eax, dword [eax + 0x2450]
test eax, eax
je 0x459136
movsd xmm0, qword [eax + 0x108]
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jnp 0x459136
mov ecx, esi
mov dword [esp + 0x18], esi
call fcn.00471c30
mov ecx, esi
call fcn.00471b60
movsd xmm1, qword [esi + 0x48e8]
lea eax, [esi + 0x48e8]
movsd xmm0, qword [edi + 0xeb5a8]
lea ecx, [edi + 0xeb5a8]
comisd xmm0, xmm1
mov dword [esp + 0x1c], eax
lea edx, [esi + 0x494c]
mov dword [esp + 0x68], ecx
jbe 0x459126
cmp dword [edx], 0
je 0x459136
movsd xmm0, qword [esp + 0x20]
comisd xmm0, xmm1
jbe 0x4591e6
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x30]
jne 0x459090
mov dword [esp + 0x28], 0
lea eax, [edi + 0xeb5a8]
mov edi, dword [esp + 0x18]
lea edx, [esi + 0x494c]
mov dword [esp + 0x68], eax
mov eax, edi
mov dword [esp + 0x14], edi
lea ecx, [esi + 0x48e8]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0xc], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
test esi, esi
je 0x459317
mov ecx, dword [esp + 0x14]
lea eax, [esi + 0x494c]
cmp dword [esp + 0x28], 0
jle 0x459317
mov dword [edi + 0xeb5a0], 8
cmp dword [eax], 0
jne 0x459200
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
lea esi, [ecx + 0x14]
lea edx, [ecx + 0x4950]
add ecx, 0x4958
movsd xmm0, qword [eax + 0x30]
movsd qword [edx], xmm0
movsd xmm0, qword [eax + 0x38]
mov eax, dword [esp + 0xc]
movsd qword [ecx], xmm0
mov dword [eax], 1
jmp 0x4592e8
mov eax, dword [esi + 0x4818]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov eax, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], eax
jmp 0x459195
mov eax, dword [esp + 0x1c]
movsd xmm3, qword [esp + 0x50]
movsd xmm4, qword [0x4ae928]
movsd xmm1, qword [eax]
mov eax, dword [esp + 0x68]
movaps xmm0, xmm1
movsd xmm2, qword [eax]
subsd xmm0, xmm2
andps xmm0, xmm3
comisd xmm4, xmm0
jbe 0x45923c
comisd xmm2, xmm1
jbe 0x45923c
add ecx, 0x4958
jmp 0x45926a
mov eax, dword [esp + 0x18]
movsd xmm0, qword [eax + 0x4958]
lea ecx, [eax + 0x4958]
movsd xmm6, qword [esp + 0x78]
add eax, 0x4950
mov dword [esp + 0x28], eax
subsd xmm0, qword [eax]
andps xmm0, xmm3
comisd xmm6, xmm0
jbe 0x459293
mov eax, dword [esp + 0x14]
mov dword [edx], 0
mov dword [edi + 0xeb588], 0
mov dword [edi + 0x1a4], 1
lea edx, [eax + 0x4950]
lea esi, [eax + 0x14]
jmp 0x4592e8
comisd xmm2, xmm1
ja 0x4592c9
movsd xmm0, qword [esi + 0x2410]
comisd xmm0, xmmword [esi + 0x20]
ja 0x4592c9
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
add esi, 0x14
mov eax, dword [esi]
mov eax, dword [eax + 0x2450]
movsd xmm0, qword [eax + 0x108]
movsd qword [edx], xmm0
jmp 0x4592e8
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
add esi, 0x14
mov eax, dword [esi]
mov eax, dword [eax + 0x2450]
movsd xmm0, qword [eax + 0x108]
movsd qword [ecx], xmm0
movsd xmm0, qword [edx]
addsd xmm0, qword [ecx]
mov eax, dword [esi]
mulsd xmm0, qword [0x4aed20]
mov eax, dword [eax + 0x2450]
movsd qword [eax + 0x108], xmm0
mov dword [edi + 0x1a4], 1
jmp 0x459508
lea ecx, [edi + 0xeb564]
mov dword [edi + 0xeb5a0], 8
mov dword [esp + 0xa8], 0
call fcn.004117f0
lea ecx, [edi + 0xeb564]
mov dword [esp + 0xc], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], ecx
cmp eax, ecx
je 0x459508
nop dword [eax + eax]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
lea esi, [eax + 0x2454]
mov ecx, esi
call fcn.004117f0
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.004117e0
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp esi, eax
je 0x4593fe
mov edi, dword [esp + 0x14]
push 0
push 0x4b3a68
push 0x4b3b30
push 0
push dword [esi]
call sub.VCRUNTIME140.dll___RTDynamicCast
mov edx, eax
add esp, 0x14
test edx, edx
je 0x4593f1
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx + 0x2450]
test eax, eax
je 0x4593f1
movsd xmm0, qword [eax + 0x108]
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jnp 0x4593f1
cmp dword [edx + 0x494c], 1
jne 0x4593f1
movsd xmm0, qword [edi + 0x30]
comisd xmm0, xmmword [edx + 0x4950]
jbe 0x4593f1
movsd qword [edx + 0x4950], xmm0
add esi, 4
cmp esi, dword [esp + 0x48]
jne 0x459392
mov edi, dword [esp + 0x6c]
cmp dword [edi + 0xeb588], 0
movsd xmm1, qword [edi + 0x2d8]
mulsd xmm1, qword [0x4ae928]
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x1a4], 1
je 0x459443
mov eax, dword [esp + 0x18]
movsd xmm0, qword [ecx + 0x30]
movsd qword [eax + 0x4950], xmm0
movsd xmm0, qword [ecx + 0x38]
movsd qword [eax + 0x4958], xmm0
mov eax, dword [ecx + 0x2450]
addsd xmm1, qword [esp + 0x78]
mulsd xmm1, qword [eax + 0x108]
movsd qword [eax + 0x108], xmm1
mov eax, dword [ecx + 0x2450]
movsd xmm1, qword [ecx + 0x38]
movsd xmm0, qword [eax + 0x108]
comisd xmm0, xmm1
jbe 0x45948a
movsd qword [eax + 0x108], xmm1
mov dword [edi + 0x1a4], 0
lea ecx, [edi + 0xd0]
call fcn.004117f0
mov esi, eax
lea ecx, [edi + 0xd0]
mov dword [esp + 0x30], esi
call fcn.004117e0
mov dword [esp + 0x48], eax
cmp esi, eax
je 0x4594f3
mov edi, esi
mov esi, dword [edi]
xorps xmm1, xmm1
movsd xmm0, qword [esi + 0x4900]
divsd xmm0, qword [0x4af5d0]
ucomisd xmm1, xmm0
ja 0x4594d1
sqrtsd xmm0, xmm0
jmp 0x4594d6
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mulsd xmm0, qword [esi + 0x48c0]
add edi, 4
movsd qword [esi + 0x48b8], xmm0
cmp edi, dword [esp + 0x48]
jne 0x4594b0
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0xc]
add eax, 4
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x28]
jne 0x459360
cmp dword [edi + 0x1a4], 0
je 0x459525
movsd xmm1, qword [esp + 0x20]
xor eax, eax
mov dword [edi + 0xc], 0
jmp 0x456223
xor eax, eax
cmp dword [edi + 0xeb58c], 1
jle 0x459864
cmp dword [esp + 0xa8], eax
jne 0x4596e7
push dword [edi + 0x270]
mov ecx, edi
call fcn.004389a0
mov dword [esp + 0x48], eax
test eax, eax
je 0x45969b
add eax, 0x246c
xor esi, esi
mov ecx, eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x1c], eax
call fcn.004117f0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
cmp eax, ecx
je 0x4595df
nop dword [eax + eax]
cmp dword [edi + 0xeb594], 1
mov ecx, dword [eax]
jne 0x4595ae
push ecx
mov ecx, edi
call fcn.00462c90
cmp eax, 1
je 0x459691
jmp 0x4595c6
push 0
push ecx
mov ecx, edi
call fcn.00462a00
test eax, eax
mov eax, 1
cmovne esi, eax
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x30]
jne 0x459590
test esi, esi
jne 0x45968c
cmp dword [edi + 0xeb594], 0
jne 0x459642
mov esi, dword [esp + 0x48]
lea ecx, [esi + 0x2454]
call fcn.004117f0
lea ecx, [esi + 0x2454]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov esi, dword [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
cmp eax, ecx
je 0x459642
push 0
push dword [eax]
mov ecx, edi
call fcn.00462a00
test eax, eax
mov eax, 1
cmovne esi, eax
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x30]
jne 0x459618
test esi, esi
jne 0x45968c
mov ecx, dword [esp + 0x1c]
call fcn.004117f0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
call fcn.004117e0
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
cmp eax, ecx
je 0x45969b
push 0
push dword [eax]
mov ecx, edi
call fcn.00462a00
test eax, eax
mov eax, 1
cmovne esi, eax
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x30]
jne 0x459666
cmp esi, 1
jne 0x45969b
mov dword [edi + 0x1a4], 1
mov eax, dword [edi + 0x1a4]
test eax, eax
je 0x4596e7
movsd xmm3, qword [esp + 0x78]
xor eax, eax
movsd xmm1, qword [esp + 0x20]
xor ecx, ecx
mov dword [edi + 0x1a4], ecx
inc ecx
mov dword [edi + 0xc], 0
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x88], xmm1
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x10], eax
jmp 0x45511f
cmp dword [edi + 0xeb58c], 1
jle 0x459864
test eax, eax
jne 0x459864
lea ecx, [edi + 0x58]
call fcn.004117f0
lea ecx, [edi + 0x58]
mov esi, eax
call fcn.004117e0
mov dword [esp + 0x30], eax
cmp esi, eax
je 0x459744
cmp dword [edi + 0xeb594], 1
jne 0x459731
push dword [esi]
mov ecx, edi
call fcn.00462c90
cmp eax, 1
je 0x45973a
mov eax, dword [esp + 0x30]
add esi, 4
cmp esi, eax
jne 0x459716
jmp 0x459744
mov dword [edi + 0x1a4], 1
cmp dword [edi + 0x1a4], 0
jne 0x459871
lea ecx, [edi + 0x58]
call fcn.004117f0
lea ecx, [edi + 0x58]
mov esi, eax
call fcn.004117e0
mov dword [esp + 0x30], eax
cmp esi, eax
je 0x459792
nop dword [eax + eax]
push 1
push dword [esi]
mov ecx, edi
call fcn.00462a00
test eax, eax
je 0x459789
mov dword [edi + 0x1a4], 1
add esi, 4
cmp esi, dword [esp + 0x30]
jne 0x459770
cmp dword [edi + 0x1a4], 0
jne 0x459871
push dword [edi + 0x270]
mov ecx, edi
call fcn.004389a0
test eax, eax
je 0x4597ba
push eax
push 0
mov ecx, edi
call fcn.00464070
cmp dword [edi + 0x1a4], 0
je 0x45a002
lea ecx, [edi + 0x154]
call fcn.004117f0
mov esi, eax
lea ecx, [edi + 0x154]
mov dword [esp + 0x28], esi
call fcn.004117e0
mov dword [esp + 0x30], eax
cmp esi, eax
je 0x45984f
movsd xmm0, qword [esp + 0x20]
mov esi, dword [esi]
mov eax, dword [esi + 0x2450]
movsd qword [esi + 0x68], xmm0
test eax, eax
je 0x45983e
push dword [eax + 8]
mov ecx, edi
call fcn.00438ba0
movsd xmm0, qword [esp + 0x20]
test eax, eax
je 0x45983e
cmp dword [eax + 0x58], 0
jne 0x45982a
mov ecx, dword [esi + 0x2450]
movsd qword [ecx + 0x108], xmm0
cmp dword [eax + 0x58], 1
jne 0x45983e
mov eax, dword [esi + 0x2450]
movsd qword [eax + 0x118], xmm0
mov esi, dword [esp + 0x28]
add esi, 4
mov dword [esp + 0x28], esi
cmp esi, dword [esp + 0x30]
jne 0x4597f1
mov ecx, edi
call fcn.0045d660
mov ecx, edi
call fcn.0045cdf0
mov ecx, edi
call fcn.0045dde0
cmp dword [edi + 0x1a4], 0
je 0x45a002
movsd xmm3, qword [esp + 0x78]
xor eax, eax
movsd xmm1, qword [esp + 0x20]
xor ecx, ecx
mov dword [edi + 0x1a4], ecx
inc ecx
mov dword [edi + 0xc], 0
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x88], xmm1
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x10], eax
jmp 0x45511f
mov eax, dword [eax + 0x10]
mov edx, dword [esp + 0x18]
movsd xmm0, qword [eax + 0x68]
subsd xmm0, qword [0x4af8a0]
movsd qword [edx + 0x68], xmm0
jmp 0x458e9f
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
add edi, 4
cmp edi, eax
jne 0x458ee0
mov edi, dword [esp + 0x6c]
jmp 0x4598ee
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x20], 1
jle 0x459a13
lea esi, [edx + 0x2454]
mov ecx, esi
call fcn.004117f0
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.004117e0
mov esi, eax
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x28], esi
je 0x459a13
mov edi, dword [esp + 0x28]
nop dword [eax]
nop dword [eax + eax]
mov esi, dword [edi]
cmp dword [esi + 0x4840], 0
je 0x459a04
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
push 0
push 0x4b3abc
movsd xmm0, qword [ecx + 0x68]
push 0x4b3b30
push 0
push esi
movsd qword [eax + 0x68], xmm0
call sub.VCRUNTIME140.dll___RTDynamicCast
mov ecx, eax
add esp, 0x14
test ecx, ecx
je 0x459a00
cmp dword [ecx + 0x49d8], 2
jl 0x45998f
mov eax, dword [esi + 0x10]
movsd xmm0, qword [ecx + 0x4870]
addsd xmm0, qword [eax + 0x68]
movsd qword [eax + 0x68], xmm0
movsd xmm0, qword [ecx + 0x4890]
ucomisd xmm0, qword [esp + 0x20]
lahf
test ah, 0x44
jnp 0x4599e2
mov eax, dword [esi + 0x10]
movsd xmm0, qword [ecx + 0x48a0]
addsd xmm0, qword [eax + 0x68]
movsd qword [eax + 0x68], xmm0
mov eax, dword [esi + 0x10]
movsd xmm0, qword [eax + 0x68]
divsd xmm0, qword [ecx + 0x4890]
movsd qword [eax + 0x68], xmm0
mov eax, dword [esi + 0x10]
movsd xmm0, qword [ecx + 0x4898]
addsd xmm0, qword [eax + 0x68]
movsd qword [eax + 0x68], xmm0
cmp dword [ecx + 0x49d8], 2
jge 0x459a00
mov eax, dword [esi + 0x10]
movsd xmm0, qword [ecx + 0x4870]
addsd xmm0, qword [eax + 0x68]
movsd qword [eax + 0x68], xmm0
mov eax, dword [esp + 0x1c]
add edi, 4
cmp edi, eax
jne 0x459930
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
add ecx, 4
mov dword [esp + 0x14], ecx
cmp ecx, eax
jne 0x458cc5
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
jmp 0x459fba
cmp dword [edi + 0xeb58c], 1
jne 0x459a4a
cmp dword [esp + 0xa8], 0
jne 0x459a9a
push dword [edi + 0xeb5a0]
movups xmm0, xmmword [edi + 0x260]
push dword [0x4b3934]
push dword [edi + 0x270]
sub esp, 0x10
movups xmmword [esp], xmm0
push dword [edi + 0x258]
push ecx
push str._d__d__e__lf__d__d__d
push 0x4b46f0
call fcn.00404440
mov ecx, dword [0x7c1e60]
add esp, 0x2c
push dword [0x7c1cf0]
call fcn.00428060
mov ecx, dword [0x7c1cf0]
cmp ecx, 0x63
jl 0x459af9
cmp dword [edi + 0xeb58c], 1
jg 0x459adf
jne 0x459ab9
lea ecx, [edi + 0xeb564]
call fcn.004117d0
test eax, eax
jne 0x459adf
mov ecx, edi
call fcn.004375a0
cmp eax, 1
je 0x458987
mov dword [edi + 0xc], 0x64
mov dword [0x7c1cf0], 0x64
jmp 0x45a002
movsd xmm3, qword [esp + 0x70]
xor ecx, ecx
mov dword [esp + 0x44], 1
inc ecx
mov dword [esp + 0x10], esi
jmp 0x45511f
mov edx, dword [esp + 0x40]
mov dword [esp + 0x10], esi
cmp edx, dword [0x4b3930]
jle 0x459e24
mov esi, 2
mov ecx, 1
mov dword [esp + 0x44], ecx
cmp edx, esi
jle 0x459bb4
movsd xmm2, qword [0x4ae8d8]
xor ecx, ecx
movsd xmm3, qword [0x4aeb28]
nop word [eax + eax]
mov eax, dword [esp + ecx + 0x154]
cmp eax, dword [esp + ecx + 0x158]
jne 0x459bae
mov eax, dword [esp + ecx + 0x10c]
sub eax, dword [esp + ecx + 0x110]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x40]
test eax, eax
jg 0x459bae
movsd xmm0, qword [edi + 0x2d0]
mulsd xmm0, xmm2
movsd xmm1, qword [esp + esi*8 + 0x190]
subsd xmm1, qword [esp + esi*8 + 0x198]
mulsd xmm0, qword [edi + 0x2d8]
andps xmm1, xmmword [esp + 0x50]
divsd xmm0, xmm3
comisd xmm0, xmm1
jbe 0x459bae
inc esi
add ecx, 4
cmp esi, edx
jl 0x459b40
mov ecx, dword [esp + 0x44]
jmp 0x459bb4
xor ecx, ecx
mov dword [esp + 0x44], ecx
cmp dword [0x7c1d28], 1
jne 0x459c0b
cmp ecx, 1
jne 0x459c0b
movsd xmm1, qword [edi + 0x1b0]
movsd xmm0, qword [esp + edx*8 + 0x218]
comisd xmm0, xmm1
jbe 0x459be7
movsd xmm0, qword [0x4aeb38]
comisd xmm0, xmm1
ja 0x459bf6
mov eax, dword [esp + edx*4 + 0x104]
cmp eax, dword [edi + 0x258]
jle 0x459c0b
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], 0
mov dword [esp + 0x10], eax
jmp 0x459db8
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
cmp ecx, 1
jne 0x459db8
lea esi, [edi + 0xd0]
mov dword [esp + 0x10], eax
mov ecx, esi
call fcn.004117d0
test eax, eax
je 0x459cb1
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
cmp eax, dword [0x4b3930]
jge 0x459cb1
cmp dword [0x7c1e4c], 1
mov dword [esp + 0x10], eax
je 0x459cb1
mov ecx, esi
call fcn.004117f0
lea ecx, [edi + 0xd0]
mov esi, eax
call fcn.004117e0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], ecx
cmp esi, eax
je 0x459cab
mov edx, dword [edi + 0x270]
nop dword [eax]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x10]
cmp dword [eax + 0x10], edx
je 0x459d77
mov eax, dword [ecx + 0x14]
cmp dword [eax + 0x10], edx
je 0x459d77
add esi, 4
cmp esi, dword [esp + 0x30]
jne 0x459c80
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
lea esi, [edi + 0xd0]
cmp dword [0x7c1d28], 1
jne 0x459db4
mov ecx, esi
call fcn.004117d0
test eax, eax
jne 0x459db4
lea ecx, [edi + 0xa0]
call fcn.004117d0
test eax, eax
je 0x459db4
cmp dword [0x7c1e4c], 1
je 0x459db4
lea ecx, [edi + 0xa0]
call fcn.004117f0
lea ecx, [edi + 0xa0]
mov esi, eax
call fcn.004117e0
mov dword [esp + 0x30], eax
cmp esi, eax
je 0x459db4
mov edx, dword [edi + 0x270]
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
cmp dword [ecx + 0x10], edx
je 0x459d29
mov eax, dword [eax + 0x14]
cmp dword [eax + 0x10], edx
jne 0x459d6c
cmp dword [edi + 0x2ac], 2
je 0x459d6c
mov eax, dword [ecx + 0x2450]
test eax, eax
je 0x459d6c
movsd xmm0, qword [eax + 0x108]
movsd xmm1, qword [ecx + 0x68]
subsd xmm1, xmm0
andps xmm1, xmmword [esp + 0x50]
divsd xmm1, xmm0
movsd xmm0, qword [edi + 0x2c8]
mulsd xmm0, qword [0x4aeed8]
comisd xmm1, xmm0
jb 0x459d9c
add esi, 4
cmp esi, dword [esp + 0x30]
jne 0x459d17
jmp 0x459db4
mov esi, dword [0x4b3930]
mov ecx, dword [0x7c1cf0]
inc esi
movsd xmm3, qword [esp + 0x70]
inc ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x44], 0
jmp 0x45511f
mov eax, dword [0x4b3930]
mov dword [esp + 0x44], 0
lea eax, [eax*2 + 1]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x40]
cmp edx, 1
jle 0x459e23
lea eax, [edx*8 - 8]
mov ecx, eax
lea esi, [esp + 0x1a0]
shr ecx, 2
lea edi, [esp + 0x198]
rep movsd dword es:[edi], dword [esi]
shr eax, 2
lea esi, [esp + 0x228]
mov ecx, eax
lea edi, [esp + 0x220]
rep movsd dword es:[edi], dword [esi]
lea eax, [edx*4 - 4]
mov ecx, eax
lea esi, [esp + 0x154]
shr ecx, 2
lea edi, [esp + 0x150]
rep movsd dword es:[edi], dword [esi]
shr eax, 2
lea esi, [esp + 0x10c]
mov ecx, eax
lea edi, [esp + 0x108]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x6c]
dec edx
movsd xmm0, qword [edi + 0x1b0]
lea ecx, [edi + 0x154]
mov eax, dword [edi + 0x258]
movsd qword [esp + edx*8 + 0x220], xmm0
movsd xmm0, qword [edi + 0x260]
mov dword [esp + edx*4 + 0x108], eax
mov eax, dword [edi + 0x270]
movsd qword [esp + edx*8 + 0x198], xmm0
mov dword [esp + edx*4 + 0x150], eax
inc edx
mov dword [esp + 0x40], edx
call fcn.004117f0
lea ecx, [edi + 0x154]
mov esi, eax
call fcn.004117e0
cmp esi, eax
je 0x459e94
mov ecx, dword [esi]
add esi, 4
movsd xmm0, qword [ecx + 0x68]
movsd qword [ecx + 0x50], xmm0
cmp esi, eax
jne 0x459e81
cmp dword [0x7c1e4c], 0
movsd xmm0, qword [0x4b3980]
mov eax, dword [0x4b398c]
mov ecx, dword [0x4b3988]
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], ecx
movsd qword [esp + 0x90], xmm0
jne 0x459ed6
cmp eax, 1
jne 0x459ed6
movsd xmm0, qword [0x4aef10]
movsd qword [0x4b3980], xmm0
mov esi, dword [0x4b3934]
mov ecx, edi
mov dword [0x4b3988], 0
mov dword [0x4b398c], 0
mov dword [0x4b3934], 0
call fcn.0045b1e0
movsd xmm0, qword [esp + 0x90]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [0x4b398c], eax
mov eax, dword [esp + 0x48]
mov dword [0x4b3934], esi
mov dword [0x4b3988], eax
cmp dword [edi + 0xc], 0
movsd qword [0x4b3980], xmm0
je 0x459f40
cmp dword [edi + 0x274], 0
je 0x459ac9
cmp dword [0x7c1e4c], 0
movsd xmm1, qword [edi + 0x1b0]
mov dword [edi + 0xc], 0
movsd qword [esp + 0x88], xmm1
jne 0x459f68
cmp dword [esp + 0x44], 0
jne 0x459f88
movsd xmm0, qword [esp + 0xd0]
comisd xmm0, xmmword [esp + 0x70]
jbe 0x459f88
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0x88], xmm1
movsd xmm3, qword [esp + 0x78]
movsd qword [esp + 0x70], xmm3
jmp 0x459fc0
lea ecx, [edi + 0x58]
mov dword [esp + 0x10], esi
call fcn.004117d0
cmp eax, 1
jne 0x459fba
lea ecx, [edi + 0xa0]
mov dword [esp + 0x10], esi
call fcn.004117d0
test eax, eax
je 0x45a002
movsd xmm3, qword [esp + 0x70]
mov eax, dword [edi + 0x198]
cmp dword [edi + 0x24c], eax
jne 0x459fda
cmp eax, 1
jne 0x459fda
mov dword [edi + 0xc], 0x64
mov ecx, dword [0x7c1cf0]
inc ecx
jmp 0x45511f
cmp dword [edi + 0x1a8], 0
jle 0x45a002
mov dword [edi + 0xc], 0x64
jmp 0x45a002
mov dword [0x7c1cf0], 0
mov eax, dword [edi + 0xc]
cmp eax, 0x64
je 0x45a01c
cmp eax, 0x1a5
je 0x45a01c
cmp eax, 0x1a4
jne 0x45a2d8
mov ecx, edi
call fcn.0045ccc0
cmp dword [edi + 0x1a4], 0
jne 0x45a2d8
mov eax, dword [edi + 0x58]
mov ecx, dword [edi + 0x5c]
mov dword [esp + 0xac], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
je 0x45a2d8
nop dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x80], eax
mov edx, dword [eax + 0x14]
test edx, edx
je 0x45a0aa
movsd xmm1, qword [eax + 0x2410]
movsd xmm2, qword [esp + 0x50]
movaps xmm0, xmm1
subsd xmm0, qword [edx + 0x30]
movsd xmm3, qword [esp + 0xd8]
andps xmm0, xmm2
comisd xmm3, xmm0
jbe 0x45a092
cmp dword [edx + 0x14], 0
jg 0x45a366
subsd xmm1, qword [edx + 0x38]
andps xmm1, xmm2
comisd xmm3, xmm1
jbe 0x45a0aa
cmp dword [edx + 0x14], 0
jg 0x45a382
push 0
push 0x4b3bcc
push 0x4b3b30
push 0
push eax
call sub.VCRUNTIME140.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x45a2b9
mov ecx, dword [eax + 0x485c]
mov eax, dword [eax + 0x4858]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x28], eax
cmp eax, ecx
je 0x45a2b9
nop dword [eax + eax]
mov edx, dword [eax]
mov dword [esp + 0x9c], edx
mov esi, dword [edx + 0x49a0]
mov eax, esi
mov ecx, dword [edx + 0x499c]
sub eax, ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0xc8], ecx
test eax, 0xfffffffc
je 0x45a2a1
cmp ecx, esi
je 0x45a2a1
nop word [eax + eax]
mov eax, dword [ecx]
mov ecx, dword [eax + 0x485c]
mov edi, dword [eax + 0x4858]
mov dword [esp + 0x30], ecx
cmp edi, ecx
je 0x45a288
movsd xmm1, qword [esp + 0x50]
add edx, 0xc
movsd xmm2, qword [0x4ae8d8]
nop dword [eax + eax]
mov ecx, dword [edi]
mov dword [esp + 0x84], ecx
movsd xmm0, qword [ecx + 0x48e8]
lea esi, [ecx + 0xc]
subsd xmm0, qword [ecx + 0x4888]
andps xmm0, xmm1
comisd xmm2, xmm0
jbe 0x45a1ba
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
mov dword [esi], 0x44
mov dword [edx], 0x27
mov dword [eax + 0xc], 0
mov eax, dword [esp + 0x80]
mov eax, dword [eax + 0x4818]
mov dword [ecx + 0x1a4], eax
mov ecx, dword [esp + 0x84]
movsd xmm0, qword [ecx + 0x4890]
subsd xmm0, qword [ecx + 0x48e0]
andps xmm0, xmm1
comisd xmm2, xmm0
jbe 0x45a211
mov dword [esi], 0x47
mov dword [edx], 0x27
cmp dword [0x7c1d2c], 6
je 0x45a1f3
mov eax, dword [esp + 0x6c]
mov dword [eax + 0xc], 0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x6c]
mov eax, dword [eax + 0x4818]
mov dword [ecx + 0x1a4], eax
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + 0x4858]
movsd xmm0, qword [ecx + 0x4918]
subsd xmm0, qword [eax + 0x48]
andps xmm0, xmm1
comisd xmm2, xmm0
jbe 0x45a266
mov dword [esi], 0x2b3
mov dword [edx], 0x27
cmp dword [0x7c1d2c], 6
je 0x45a24d
mov eax, dword [esp + 0x6c]
mov dword [eax + 0xc], 0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x6c]
mov eax, dword [eax + 0x4818]
mov dword [ecx + 0x1a4], eax
jmp 0x45a270
mov edx, dword [esp + 0x9c]
add edx, 0xc
add edi, 4
cmp edi, dword [esp + 0x30]
jne 0x45a160
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0xc8]
add ecx, 4
mov dword [esp + 0xc8], ecx
cmp ecx, esi
jne 0x45a130
mov eax, dword [esp + 0x28]
add eax, 4
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0xcc]
jne 0x45a0f0
mov eax, dword [esp + 0xac]
add eax, 4
mov dword [esp + 0xac], eax
cmp eax, dword [esp + 0x14]
jne 0x45a050
mov edi, dword [esp + 0x6c]
cmp dword [edi + 0xc], 0
je 0x45a2f9
mov eax, dword [edi + 0x198]
cmp dword [edi + 0x24c], eax
jne 0x45a404
cmp eax, 1
jne 0x45a404
cmp dword [0x7c1d2c], 6
jne 0x45a30b
cmp dword [0x7c1e4c], 0
je 0x45a312
mov ecx, edi
call fcn.00446f10
cmp dword [edi + 0x218], 2
jne 0x45a404
mov ecx, dword [edi + 0x50]
sub ecx, dword [edi + 0x4c]
sar ecx, 2
mov dword [esp + 0x84], ecx
test ecx, ecx
jle 0x45a404
add ecx, 0x64
mov dword [esp + 0x9c], ecx
mov eax, dword [edi + 0x4c]
mov edx, dword [edi + 0x50]
cmp eax, edx
je 0x45a3e5
nop
mov esi, dword [eax]
cmp dword [esi + 0x194], ecx
je 0x45a39e
add eax, 4
cmp eax, edx
jne 0x45a350
jmp 0x45a3e5
mov edi, dword [esp + 0x6c]
mov dword [edi + 0xc], 0x3e8
mov eax, dword [eax + 0x4818]
mov dword [edi + 0x1a4], eax
jmp 0x45a2d8
mov edi, dword [esp + 0x6c]
mov dword [edi + 0xc], 0x2710
mov eax, dword [eax + 0x4818]
mov dword [edi + 0x1a4], eax
jmp 0x45a2d8
mov eax, dword [esi + 0x5c]
sub eax, dword [esi + 0x58]
test eax, 0xfffffffc
je 0x45a3e5
push esi
mov ecx, edi
call fcn.00448550
mov ecx, dword [0x7c1e60]
push 0
mov dword [esi + 0x19c], 0
mov eax, dword [edi + 0x198]
push esi
mov dword [esi + 0x198], eax
call fcn.004791b0
mov ecx, esi
call fcn.00454e40
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x84]
dec ecx
dec eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x84], eax
test eax, eax
jg 0x45a341
mov ecx, dword [esp + 0x2ac]
pop edi
pop esi
xor ecx, esp
call fcn.004a034d
mov esp, ebp
pop ebp
ret