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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x134
mov eax, dword [0x486138]
xor eax, esp
mov dword [esp + 0x130], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [0x48af80]
mov ebx, ecx
mov esi, edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0xec], esi
mov dword [esp + 0xe4], eax
mov dword [esp + 0xf4], edi
call fcn.00405402
mov dword [esp + 0xdc], eax
cmp byte [eax + 0x8f], 0
je 0x450aed
xor al, al
jmp 0x4525f4
mov eax, dword [eax + 0x254]
mov dword [esp + 0x44], eax
call fcn.00410f64
lea ecx, [edi + 0x1c1c]
movss dword [esp + 0xa0], xmm0
call fcn.0040490b
mov ecx, ebx
call fcn.004103ee
call fcn.0041119a
mov eax, dword [ebp + 8]
mov ebx, eax
or ebx, 0x10
and eax, 0x100
cmovne ebx, dword [ebp + 8]
mov dword [esp + 0x14], ebx
test bl, 8
jne 0x450b3f
mov edx, ebx
mov ecx, esi
call fcn.0045318c
mov ecx, 0x6000000
mov edx, 0xa900000
test ecx, ebx
jne 0x450b66
mov eax, dword [edi + 0x2e64]
test ecx, eax
mov ecx, edx
cmovne ecx, eax
and ecx, 0x6000000
or ebx, ecx
mov dword [esp + 0x14], ebx
mov ecx, 0x18000000
test ecx, ebx
jne 0x450b82
mov eax, dword [edi + 0x2e64]
test ecx, eax
cmovne edx, eax
and edx, ecx
or ebx, edx
mov dword [esp + 0x14], ebx
mov ecx, ebx
and ecx, 0x6000000
call fcn.004040be
test al, al
jne 0x450bab
push 0x13c0
push str.Externalimguiincludeimgui_widgets.cpp
push str.ImIsPowerOfTwo_flags__ImGuiColorEditFlags_PickerMask__
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov ecx, ebx
and ecx, 0x18000000
call fcn.004040be
test al, al
jne 0x450bd4
push 0x13c1
push str.Externalimguiincludeimgui_widgets.cpp
push str.ImIsPowerOfTwo_flags__ImGuiColorEditFlags_InputMask__
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
test bl, 8
jne 0x450bea
mov eax, dword [edi + 0x2e64]
and eax, 0x10000
or ebx, eax
mov dword [esp + 0x14], ebx
mov eax, ebx
mov edx, ebx
and eax, 2
mov dword [esp + 0x74], eax
neg eax
sbb ecx, ecx
mov eax, dword [esp + 0xdc]
and edx, 0x10002
mov dword [esp + 0xe8], edx
mov ebx, dword [eax + 0xd0]
mov eax, dword [eax + 0xd4]
mov dword [esp + 0xf0], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x10c], eax
mov dword [esp + 0x38], eax
call fcn.004110b8
movss xmm3, dword [edi + 0x1564]
xor eax, eax
cmp edx, 0x10000
movaps xmm2, xmm0
movaps xmm0, xmm3
movss dword [esp + 0x54], xmm2
sete al
addss xmm0, xmm2
inc eax
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
movss xmm0, dword [esp + 0xa0]
subss xmm0, xmm1
movaps xmm1, xmm0
movaps xmm0, xmm2
call fcn.0041aac7
movss xmm1, dword [esp + 0x34]
lea eax, [ecx + 4]
addss xmm1, xmm0
movss dword [esp + 0x20], xmm0
shl eax, 2
push eax
mov dword [esp + 0xe0], eax
lea eax, [esp + 0x130]
push esi
movaps xmm0, xmm1
movss dword [esp + 0xc4], xmm1
addss xmm0, xmm3
push eax
movss dword [esp + 0xcc], xmm0
addss xmm0, xmm2
addss xmm3, xmm0
movss dword [esp + 0xac], xmm0
movaps xmm0, xmm2
mulss xmm0, dword [0x4830c4]
movss dword [esp + 0xec], xmm3
cvttss2si ebx, xmm0
mov dword [esp + 0x114], ebx
call sub.VCRUNTIME140.dll_memcpy
movss xmm0, dword [esp + 0x2c]
lea ecx, [esp + 0x68]
movss xmm3, dword [0x483130]
movaps xmm2, xmm0
mulss xmm2, xmm3
movaps xmm1, xmm0
add esp, 0xc
mulss xmm1, dword [0x48309c]
movaps xmm4, xmm2
movss dword [esp + 0x64], xmm2
addss xmm2, dword [esp + 0x38]
subss xmm4, xmm1
movss dword [esp + 0x70], xmm1
movaps xmm1, xmm0
addss xmm1, dword [esp + 0x54]
movss dword [esp + 0x9c], xmm4
mulss xmm1, xmm3
addss xmm1, dword [esp + 0x34]
call fcn.00403cd5
mulss xmm0, dword [0x48308c]
movaps xmm3, xmm4
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm3, xmm0
xorps xmm7, xmm7
lea ecx, [esp + 0xcc]
movaps xmm2, xmm7
movaps xmm1, xmm3
call fcn.00403cd5
mulss xmm1, dword [0x4833d8]
lea ecx, [esp + 0xc4]
movaps xmm2, xmm3
mulss xmm2, dword [0x4833e4]
call fcn.00403cd5
mulss xmm3, dword [0x4831a8]
lea ecx, [esp + 0xd4]
movaps xmm2, xmm3
call fcn.00403cd5
movss xmm0, dword [esi]
movss xmm1, dword [esi + 4]
movaps xmm3, xmm0
movss xmm2, dword [esi + 8]
movaps xmm4, xmm1
mov eax, dword [esp + 0x14]
movaps xmm5, xmm2
mov ecx, eax
movss dword [esp + 0x1c], xmm0
and ecx, 0x8000000
movss dword [esp + 0x4c], xmm0
movss dword [esp + 0x2c], xmm1
movss dword [esp + 0x68], xmm1
movss dword [esp + 0x40], xmm2
movss dword [esp + 0x30], xmm2
movss dword [esp + 0x78], xmm3
movss dword [esp + 0xb4], xmm3
movss dword [esp + 0x94], xmm4
movss dword [esp + 0x98], xmm4
movss dword [esp + 0x90], xmm5
movss dword [esp + 0x58], xmm5
mov dword [esp + 0x50], ecx
je 0x450ef0
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x6c]
lea ecx, [esp + 0x50]
call fcn.00406771
mov eax, dword [edi + 0x2e70]
pop ecx
cmp eax, dword [esi]
jne 0x450eca
mov eax, dword [edi + 0x2e74]
cmp eax, dword [esi + 4]
jne 0x450eca
mov eax, dword [edi + 0x2e78]
cmp eax, dword [esi + 8]
jne 0x450eca
movss xmm0, dword [esp + 0x68]
ucomiss xmm0, xmm7
movss dword [esp + 0x2c], xmm0
lahf
test ah, 0x44
jp 0x450e8f
movss xmm0, dword [edi + 0x2e68]
movss dword [esp + 0x4c], xmm0
jmp 0x450e95
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x30]
ucomiss xmm0, xmm7
movss dword [esp + 0x40], xmm0
lahf
test ah, 0x44
jp 0x450f40
movss xmm0, dword [edi + 0x2e6c]
movss dword [esp + 0x2c], xmm0
movss dword [esp + 0x68], xmm0
jmp 0x450f40
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x68]
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x40], xmm0
jmp 0x450f40
test eax, 0x10000000
je 0x450f40
lea eax, [esp + 0x58]
push eax
lea edx, [esp + 0x9c]
lea ecx, [esp + 0xb8]
call fcn.0040683c
movss xmm0, dword [esp + 0xb8]
movss dword [esp + 0x7c], xmm0
movss xmm0, dword [esp + 0x9c]
movss dword [esp + 0x98], xmm0
movss xmm0, dword [esp + 0x5c]
pop ecx
movss dword [esp + 0x90], xmm0
xor eax, eax
mov dl, 1
push 8
pop ecx
mov byte [esp + 0x24], al
mov byte [esp + 0x1a], al
mov byte [esp + 0x1b], al
call fcn.0040fac1
mov eax, dword [esp + 0x14]
mov ecx, eax
and ecx, 0x4000000
mov dword [esp + 0x7c], ecx
je 0x451363
movss xmm1, dword [edi + 0x1564]
lea ecx, [esp + 0x80]
addss xmm1, dword [esp + 0x20]
movss xmm2, dword [esp + 0x20]
push 0
addss xmm1, dword [esp + 0x58]
call fcn.00403cd5
mov edx, eax
mov ecx, 0x481658
call fcn.00446730
pop ecx
call fcn.0040b796
test al, al
je 0x451210
lea eax, [esp + 0x5c]
push eax
lea edx, [edi + 0x388]
lea ecx, [esp + 0x84]
call fcn.0040413a
add esp, 4
lea eax, [esp + 0x5c]
lea edx, [edi + 0xe4]
lea ecx, [esp + 0xf8]
push eax
call fcn.0040413a
add esp, 4
lea ecx, [esp + 0x80]
call fcn.004042be
movss xmm1, dword [esp + 0x9c]
movaps xmm3, xmm0
movss xmm2, dword [0x4831d4]
subss xmm1, xmm2
mulss xmm1, xmm1
comiss xmm3, xmm1
jb 0x45107c
movss xmm0, dword [esp + 0x64]
addss xmm0, xmm2
mulss xmm0, xmm0
comiss xmm0, xmm3
jb 0x45107c
movss xmm1, dword [esp + 0xf8]
movss xmm0, dword [esp + 0xfc]
call fcn.00445343
divss xmm0, dword [0x483250]
xorps xmm1, xmm1
mulss xmm0, dword [0x483130]
comiss xmm1, xmm0
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x4c], xmm0
jbe 0x451073
addss xmm0, dword [0x4831d4]
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x4c], xmm0
xor ecx, ecx
inc ecx
mov dword [esp + 0x24], ecx
jmp 0x451086
mov ecx, dword [esp + 0x24]
movss xmm0, dword [esp + 0x1c]
mulss xmm0, dword [0x4833f8]
mov byte [esp + 0x13], cl
mulss xmm0, dword [0x483250]
movss dword [esp + 0x3c], xmm0
call fcn.0041aeb2
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0x3c]
call fcn.0041aeed
mov al, byte [esp + 0x24]
lea edx, [esp + 0x80]
movss xmm2, dword [esp + 0x48]
lea ecx, [esp + 0xa4]
movaps xmm3, xmm0
movss dword [esp + 0x3c], xmm0
mov byte [esp + 0x1a], al
call fcn.004453e9
push eax
lea eax, [esp + 0xd8]
push eax
lea edx, [esp + 0xcc]
lea ecx, [esp + 0xd4]
call fcn.00405ae1
add esp, 8
test al, al
je 0x451210
movss xmm3, dword [esp + 0x3c]
lea edx, [esp + 0xf8]
movss xmm2, dword [esp + 0x48]
lea ecx, [esp + 0x68]
call fcn.004453e9
mov eax, ecx
lea edx, [esp + 0xc4]
push eax
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0xd4]
call fcn.00405ae1
add esp, 8
test al, al
jne 0x451176
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0xd8]
push eax
mov eax, edx
mov edx, ecx
push eax
lea ecx, [esp + 0xb0]
call fcn.00405c3f
add esp, 0xc
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0xe4]
push eax
lea edx, [esp + 0xd8]
lea ecx, [esp + 0xe0]
call fcn.00405b9c
movss xmm4, dword [0x4831d4]
add esp, 0x14
movss xmm1, dword [0x483070]
movaps xmm0, xmm4
subss xmm0, dword [esp + 0x3c]
movaps xmm2, xmm4
call fcn.0041ab48
movaps xmm1, xmm0
movaps xmm2, xmm4
movss xmm0, dword [esp + 0x48]
divss xmm0, xmm1
movss dword [esp + 0x40], xmm1
movss dword [esp + 0x30], xmm1
movss xmm1, dword [0x483070]
call fcn.0041ab48
mov al, byte [esp + 0x13]
movss dword [esp + 0x2c], xmm0
movss dword [esp + 0x68], xmm0
mov byte [esp + 0x1b], 1
mov byte [esp + 0x24], 1
mov byte [esp + 0x1a], al
test byte [esp + 0x14], 8
jne 0x451221
mov ecx, str.context
call fcn.004122bb
movss xmm3, dword [esp + 0x20]
cmp dword [esp + 0xe8], 0x10000
jne 0x4512c1
movss xmm2, dword [esp + 0x38]
lea ecx, [esp + 0xa4]
movss xmm1, dword [esp + 0xe0]
call fcn.00403cd5
mov ecx, eax
call fcn.00410c61
movss xmm1, dword [esp + 0x54]
lea ecx, [esp + 0xa4]
push 0
movaps xmm2, xmm3
call fcn.00403cd5
mov edx, eax
mov ecx, str.alpha
call fcn.00446730
pop ecx
call fcn.0040b796
test al, al
je 0x4512c1
movss xmm1, dword [esp + 0x20]
movss xmm0, dword [edi + 0xe8]
movss xmm2, dword [0x4831d4]
subss xmm0, dword [esp + 0x38]
subss xmm1, xmm2
divss xmm0, xmm1
call fcn.004042a6
movaps xmm1, xmm2
mov byte [esp + 0x24], 1
subss xmm1, xmm0
movss dword [esi + 0xc], xmm1
call fcn.0040fb2e
mov eax, dword [esp + 0x14]
mov ecx, eax
and ecx, 0x100
mov dword [esp + 0x48], ecx
jne 0x4512f1
movss xmm1, dword [edi + 0x1564]
xorps xmm0, xmm0
call fcn.00410ba6
call fcn.0041119a
mov eax, dword [esp + 0x14]
and eax, 0x80
mov dword [esp + 0x3c], eax
jne 0x451336
mov ecx, dword [esp + 0x28]
xor edx, edx
call fcn.0040788d
mov edx, eax
mov eax, dword [esp + 0x28]
cmp eax, edx
je 0x451336
cmp dword [esp + 0x48], 0
je 0x45132c
movss xmm1, dword [edi + 0x1564]
xorps xmm0, xmm0
call fcn.00410ba6
mov eax, dword [esp + 0x28]
push 0
mov ecx, eax
call fcn.004455f6
pop ecx
cmp dword [esp + 0x48], 0
jne 0x45160e
push 0x10
mov dl, 1
pop ecx
call fcn.0040fac1
cmp dword [esp + 0x74], 0
je 0x4514c6
movss xmm0, dword [0x4831d4]
jmp 0x4514cb
test eax, 0x2000000
je 0x451221
movss xmm2, dword [esp + 0x20]
lea ecx, [esp + 0xa4]
push 0
movaps xmm1, xmm2
call fcn.00403cd5
mov edx, eax
mov ecx, 0x48165c
call fcn.00446730
pop ecx
call fcn.0040b796
test al, al
je 0x451404
movss xmm2, dword [esp + 0x20]
movss xmm0, dword [edi + 0xe4]
subss xmm0, dword [esp + 0x34]
subss xmm2, dword [0x4831d4]
divss xmm0, xmm2
call fcn.004042a6
movss dword [esp + 0x2c], xmm0
movss dword [esp + 0x68], xmm0
movss xmm0, dword [edi + 0xe8]
subss xmm0, dword [esp + 0x38]
divss xmm0, xmm2
call fcn.004042a6
movss xmm1, dword [0x4831d4]
xor eax, eax
subss xmm1, xmm0
inc eax
mov dword [esp + 0x24], eax
movss dword [esp + 0x40], xmm1
movss dword [esp + 0x30], xmm1
jmp 0x451408
mov eax, dword [esp + 0x24]
test byte [esp + 0x14], 8
mov byte [esp + 0x13], al
jne 0x45141d
mov ecx, str.context
call fcn.004122bb
movss xmm2, dword [esp + 0x38]
lea ecx, [esp + 0xa4]
movss xmm1, dword [esp + 0xc0]
call fcn.00403cd5
mov ecx, eax
call fcn.00410c61
movss xmm2, dword [esp + 0x20]
lea ecx, [esp + 0xa4]
movss xmm1, dword [esp + 0x54]
push 0
call fcn.00403cd5
mov edx, eax
mov ecx, 0x481660
call fcn.00446730
mov dl, byte [esp + 0x28]
pop ecx
mov byte [esp + 0x1b], dl
call fcn.0040b796
test al, al
je 0x451221
movss xmm3, dword [esp + 0x20]
movss xmm0, dword [edi + 0xe8]
movaps xmm1, xmm3
subss xmm0, dword [esp + 0x38]
subss xmm1, dword [0x4831d4]
divss xmm0, xmm1
call fcn.004042a6
mov al, byte [esp + 0x13]
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x4c], xmm0
mov byte [esp + 0x1a], 1
mov byte [esp + 0x24], 1
mov byte [esp + 0x1b], al
jmp 0x451227
movss xmm0, dword [esi + 0xc]
movss xmm3, dword [esi + 8]
movss xmm2, dword [esi + 4]
movss xmm1, dword [esi]
push ecx
lea ecx, [esp + 0x84]
movss dword [esp], xmm0
call fcn.004030c3
cmp dword [esp + 0x3c], 0
je 0x4514fd
push str.Current
call fcn.00445a37
pop ecx
movss xmm1, dword [esp + 0x54]
lea ecx, [esp + 0xa4]
movaps xmm0, xmm1
mulss xmm1, dword [0x48324c]
mulss xmm0, dword [0x483228]
movss dword [esp + 0x48], xmm1
movaps xmm2, xmm0
movss dword [esp + 0x3c], xmm0
call fcn.00403cd5
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x80]
and ecx, 0x180e0040
mov dword [esp + 0x28], ecx
push dword [eax + 4]
push dword [eax]
push ecx
mov ecx, str.current
call fcn.00452609
add esp, 0xc
cmp dword [esp + 0xe4], 0
je 0x451604
push str.Original
call fcn.00445a37
cmp dword [esp + 0x78], 0
mov eax, dword [esp + 0xe8]
pop ecx
je 0x45158a
movss xmm0, dword [0x4831d4]
jmp 0x45158f
movss xmm0, dword [eax + 0xc]
movss xmm3, dword [eax + 8]
movss xmm2, dword [eax + 4]
movss xmm1, dword [eax]
push ecx
lea ecx, [esp + 0xfc]
movss dword [esp], xmm0
call fcn.004030c3
movss xmm2, dword [esp + 0x3c]
lea ecx, [esp + 0xa4]
movss xmm1, dword [esp + 0x48]
call fcn.00403cd5
lea edx, [esp + 0xf8]
mov ecx, str.original
push dword [eax + 4]
push dword [eax]
push dword [esp + 0x30]
call fcn.00452609
add esp, 0xc
test al, al
je 0x451604
push dword [esp + 0xdc]
push dword [esp + 0xe8]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esp + 0x24], 1
call fcn.0040fb2e
call fcn.004112bb
cmp byte [esp + 0x1a], 0
jne 0x451620
cmp byte [esp + 0x1b], 0
je 0x4516b9
cmp dword [esp + 0x50], 0
je 0x4516e2
movss xmm0, dword [esp + 0x40]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x45163e
movaps xmm2, xmm0
jmp 0x451646
movss xmm2, dword [0x483060]
movss xmm0, dword [esp + 0x2c]
comiss xmm0, xmm1
movss xmm1, dword [0x483064]
jbe 0x45165e
movaps xmm3, xmm0
jmp 0x451661
movaps xmm3, xmm1
movss xmm0, dword [esp + 0x1c]
comiss xmm0, dword [0x4831d4]
jb 0x451674
subss xmm0, xmm1
lea eax, [esi + 8]
mov ecx, esi
push eax
lea edx, [esi + 4]
movaps xmm1, xmm3
call fcn.0040683c
movss xmm0, dword [esp + 0x20]
movss dword [edi + 0x2e68], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [edi + 0x2e6c], xmm0
add edi, 0x2e70
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xf4]
mov esi, dword [esp + 0xec]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x13], 0
test al, 0x20
jne 0x451936
cmp dword [esp + 0xe8], 0x10000
jne 0x45170f
movss xmm0, dword [esp + 0xe0]
jmp 0x451718
mov eax, dword [esp + 0x14]
test eax, 0x10000000
je 0x4516bd
movss xmm0, dword [esp + 0x1c]
movss dword [esi], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esi + 4], xmm0
movss xmm0, dword [esp + 0x40]
movss dword [esi + 8], xmm0
jmp 0x4516bd
movss xmm0, dword [esp + 0xc0]
addss xmm0, dword [esp + 0x54]
subss xmm0, dword [esp + 0x34]
call fcn.00410def
mov eax, dword [esp + 0x14]
mov edx, 0x100000
mov ecx, eax
and ecx, 0x198e001a
or ecx, 4
mov dword [esp + 0x28], ecx
test edx, eax
jne 0x45174c
test eax, 0x700000
jne 0x451789
or ecx, edx
mov edx, esi
push ecx
mov ecx, str.rgb
call fcn.0044fcf6
pop ecx
test al, al
je 0x451781
cmp dword [edi + 0x1bc8], 0
je 0x451777
cmp byte [edi + 0x1bd5], 0
mov byte [esp + 0x13], 1
je 0x45177c
mov byte [esp + 0x13], 0
mov byte [esp + 0x24], 1
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov edx, 0x200000
test edx, eax
jne 0x451799
test eax, 0x700000
jne 0x4517b1
or ecx, edx
mov edx, esi
push ecx
mov ecx, str.hsv
call fcn.0044fcf6
or byte [esp + 0x28], al
mov eax, dword [esp + 0x18]
pop ecx
mov ecx, 0x400000
test ecx, eax
jne 0x4517c1
test eax, 0x700000
jne 0x4517d9
mov eax, dword [esp + 0x28]
mov edx, esi
or eax, ecx
mov ecx, str.hex
push eax
call fcn.0044fcf6
or byte [esp + 0x28], al
pop ecx
call fcn.00410f3d
cmp byte [esp + 0x13], 0
mov edx, dword [esp + 0x50]
je 0x45193e
test edx, edx
je 0x45193e
movss xmm2, dword [esi + 8]
lea eax, [esp + 0x28]
movss xmm1, dword [esi + 4]
lea edx, [esp + 0x74]
movss xmm0, dword [esi]
lea ecx, [esp + 0x3c]
push eax
call fcn.00406771
xorps xmm7, xmm7
comiss xmm7, dword [esp + 0x40]
pop ecx
jb 0x45194a
movss xmm0, dword [esp + 0x1c]
comiss xmm0, xmm7
jbe 0x451872
comiss xmm7, dword [esp + 0x28]
jb 0x451912
movss xmm1, dword [esp + 0x40]
ucomiss xmm1, dword [esp + 0x28]
lahf
test ah, 0x44
jnp 0x451912
movaps xmm2, xmm1
movss xmm1, dword [esp + 0x2c]
mulss xmm2, dword [0x483130]
lea eax, [esi + 8]
mov ecx, esi
lea edx, [esi + 4]
push eax
call fcn.0040683c
pop ecx
xorps xmm7, xmm7
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x24]
test cl, cl
je 0x451a1e
test edx, edx
je 0x4519ae
movss xmm0, dword [esi]
lea eax, [esp + 0x30]
movss xmm1, dword [esi + 4]
lea edx, [esp + 0x68]
movss xmm2, dword [esi + 8]
lea ecx, [esp + 0x4c]
push eax
movss dword [esp + 0x7c], xmm0
movss dword [esp + 0x98], xmm1
movss dword [esp + 0x94], xmm2
call fcn.00406771
mov eax, dword [edi + 0x2e70]
pop ecx
cmp eax, dword [esi]
jne 0x451988
mov eax, dword [edi + 0x2e74]
cmp eax, dword [esi + 4]
jne 0x451988
mov eax, dword [edi + 0x2e78]
cmp eax, dword [esi + 8]
jne 0x451988
movss xmm0, dword [esp + 0x68]
ucomiss xmm0, xmm7
movss dword [esp + 0x2c], xmm0
lahf
test ah, 0x44
jp 0x451950
movss xmm0, dword [edi + 0x2e68]
jmp 0x451956
comiss xmm7, dword [esp + 0x74]
jb 0x451872
movss xmm1, dword [esp + 0x2c]
mulss xmm1, dword [0x483130]
movss xmm2, dword [esp + 0x28]
jmp 0x451860
xorps xmm7, xmm7
jmp 0x451876
xorps xmm7, xmm7
mov eax, dword [esp + 0x14]
jmp 0x45187a
mov edx, dword [esp + 0x50]
jmp 0x451941
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x30]
ucomiss xmm0, xmm7
movss dword [esp + 0x40], xmm0
lahf
test ah, 0x44
jp 0x451a1e
movss xmm0, dword [edi + 0x2e6c]
movss dword [esp + 0x2c], xmm0
jmp 0x451a1e
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x68]
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x40], xmm0
jmp 0x451a1e
test eax, 0x10000000
je 0x451a1e
movss xmm0, dword [esi]
lea eax, [esp + 0x58]
movss xmm1, dword [esi + 4]
lea edx, [esp + 0x98]
movss xmm2, dword [esi + 8]
lea ecx, [esp + 0xb4]
push eax
movss dword [esp + 0x20], xmm0
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x44], xmm2
call fcn.0040683c
movss xmm0, dword [esp + 0xb8]
movss dword [esp + 0x7c], xmm0
movss xmm0, dword [esp + 0x9c]
movss dword [esp + 0x98], xmm0
movss xmm0, dword [esp + 0x5c]
pop ecx
movss dword [esp + 0x90], xmm0
movss xmm2, dword [edi + 0x1510]
movaps xmm0, xmm2
call fcn.004042a6
mulss xmm0, dword [0x483340]
movss xmm1, dword [0x4831d4]
movaps xmm3, xmm1
addss xmm0, dword [0x483130]
cvttss2si esi, xmm0
shl esi, 0x18
mov eax, esi
mov dword [esp + 0x98], esi
or eax, 0xffffff
mov ecx, esi
mov dword [esp + 0x30], eax
or ecx, 0xff
mov eax, esi
mov dword [esp + 0x110], ecx
or eax, 0x808080
mov dword [esp + 0x128], ecx
mov dword [esp + 0x48], eax
mov eax, esi
or eax, 0xffff
mov dword [esp + 0x114], eax
mov eax, esi
or eax, 0xff00
mov dword [esp + 0x118], eax
mov eax, esi
or eax, 0xffff00
mov dword [esp + 0x11c], eax
mov eax, esi
or eax, 0xff0000
mov dword [esp + 0x120], eax
mov eax, esi
push ecx
or eax, 0xff00ff
movss dword [esp], xmm2
movaps xmm2, xmm1
mov dword [esp + 0x128], eax
lea ecx, [esp + 0xa8]
call fcn.004030c3
movss xmm0, dword [esp + 0x1c]
lea eax, [esp + 0xac]
push eax
lea edx, [esp + 0xac]
call fcn.0040683c
pop ecx
lea ecx, [esp + 0xa4]
call fcn.004066f6
movss xmm0, dword [edi + 0x1510]
movss xmm3, dword [esp + 0x90]
movss xmm2, dword [esp + 0x94]
movss xmm1, dword [esp + 0x78]
push ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0x5c], eax
movss dword [esp], xmm0
call fcn.004030c3
mov ecx, eax
call fcn.004066f6
lea ecx, [esp + 0xb4]
mov dword [esp + 0x78], eax
call fcn.00403ccb
cmp dword [esp + 0x7c], 0
movss xmm2, dword [0x483274]
push 0xc
pop ecx
movss dword [esp + 0x28], xmm2
je 0x452054
movss xmm4, dword [esp + 0x64]
cvttss2si eax, xmm4
push 4
movss xmm3, dword [0x483130]
cdq
idiv ecx
divss xmm3, xmm4
mov edx, eax
pop ecx
movss dword [esp + 0x3c], xmm3
call fcn.0043c3ba
movss xmm0, dword [esp + 0x9c]
mov ecx, eax
mov ebx, dword [esp + 0x30]
addss xmm0, xmm4
mov dword [esp + 0x94], ecx
xor edi, edi
movaps xmm4, xmm0
movss dword [esp + 0x90], xmm0
mulss xmm4, dword [0x483130]
movss dword [esp + 0xa0], xmm4
movd xmm1, edi
cvtdq2ps xmm1, xmm1
mov eax, dword [esp + 0x44]
push ecx
push ecx
lea ecx, [esp + 0x64]
mov esi, dword [eax + 0x18]
movaps xmm0, xmm1
addss xmm1, dword [0x4831d4]
divss xmm0, xmm2
divss xmm1, xmm2
addss xmm0, xmm0
movaps xmm2, xmm4
addss xmm1, xmm1
mulss xmm0, dword [0x483250]
mulss xmm1, dword [0x483250]
subss xmm0, xmm3
addss xmm1, xmm3
movaps xmm3, xmm0
movss dword [esp + 0x6c], xmm0
movss dword [esp], xmm1
push ecx
mov ecx, eax
movss dword [esp + 0x80], xmm1
call fcn.004361f7
movss xmm3, dword [esp + 0x70]
mov ecx, dword [esp + 0x44]
push 0
push ebx
call fcn.00403eef
movss xmm0, dword [esp + 0x64]
call fcn.0041aeed
mulss xmm0, dword [esp + 0x9c]
addss xmm0, dword [esp + 0x60]
movss dword [esp + 0x7c], xmm0
movss xmm0, dword [esp + 0x64]
call fcn.0041aeb2
mulss xmm0, dword [esp + 0x9c]
lea ecx, [esp + 0xf8]
movss xmm2, dword [esp + 0x7c]
addss xmm0, dword [esp + 0x5c]
movaps xmm1, xmm0
call fcn.00403cd5
movss xmm0, dword [esp + 0x74]
call fcn.0041aeed
mulss xmm0, dword [esp + 0x9c]
addss xmm0, dword [esp + 0x60]
movss dword [esp + 0x7c], xmm0
movss xmm0, dword [esp + 0x74]
call fcn.0041aeb2
mulss xmm0, dword [esp + 0x9c]
lea ecx, [esp + 0x80]
movss xmm2, dword [esp + 0x7c]
addss xmm0, dword [esp + 0x5c]
movaps xmm1, xmm0
call fcn.00403cd5
push dword [esp + 0x84]
mov eax, dword [esp + 0x48]
mov edx, esi
push dword [esp + 0x84]
mov ecx, eax
push dword [esp + 0x104]
push dword [esp + 0x104]
push dword [esp + edi*4 + 0x124]
push dword [esp + edi*4 + 0x124]
push dword [eax + 0x18]
call fcn.00437995
movss xmm2, dword [0x483274]
add esp, 0x1c
movss xmm3, dword [esp + 0x3c]
inc edi
movss xmm4, dword [esp + 0xa0]
mov ecx, dword [esp + 0x94]
cmp edi, 6
jl 0x451bd0
movss xmm0, dword [esp + 0x1c]
mulss xmm0, dword [0x483228]
mulss xmm0, dword [0x483250]
movss dword [esp + 0x1c], xmm0
call fcn.0041aeb2
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esp + 0x1c]
call fcn.0041aeed
movaps xmm1, xmm0
lea ecx, [esp + 0xf8]
movss xmm0, dword [esp + 0x90]
movaps xmm2, xmm0
movss dword [esp + 0x7c], xmm1
mulss xmm0, dword [esp + 0x64]
mulss xmm2, xmm1
movss xmm1, dword [0x483130]
mulss xmm2, xmm1
mulss xmm1, xmm0
addss xmm2, dword [esp + 0x60]
addss xmm1, dword [esp + 0x5c]
call fcn.00403cd5
cmp byte [esp + 0x1a], 0
movss xmm1, dword [esp + 0x70]
je 0x451dde
mulss xmm1, dword [0x483168]
jmp 0x451de6
mulss xmm1, dword [0x483144]
movaps xmm0, xmm1
movss dword [esp + 0x70], xmm1
divss xmm0, dword [0x483208]
push 0x20
push 9
pop edx
cvttss2si ecx, xmm0
call fcn.0041ab15
mov ebx, dword [esp + 0x48]
add esp, 4
mov esi, eax
movaps xmm2, xmm1
lea eax, [esp + 0xf8]
mov ecx, ebx
push esi
push dword [esp + 0x5c]
push eax
call fcn.004371c6
movss xmm2, dword [esp + 0x70]
lea eax, [esp + 0xf8]
addss xmm2, dword [0x4831d4]
mov edi, dword [esp + 0x48]
push ecx
mov dword [esp], 0x3f800000
mov ecx, ebx
push esi
push edi
push eax
call fcn.00437128
movss xmm2, dword [esp + 0x70]
lea eax, [esp + 0xf8]
push ecx
mov dword [esp], 0x3f800000
mov ecx, ebx
push esi
mov esi, dword [esp + 0x38]
push esi
push eax
call fcn.00437128
movss xmm6, dword [esp + 0x64]
lea edx, [esp + 0xcc]
movss xmm3, dword [esp + 0x7c]
lea ecx, [esp + 0xa4]
movaps xmm2, xmm6
call fcn.004453e9
push eax
lea edx, [esp + 0x60]
lea ecx, [esp + 0xd0]
call fcn.00404119
add esp, 4
lea edx, [esp + 0xc4]
movaps xmm2, xmm6
lea ecx, [esp + 0xa4]
call fcn.004453e9
push eax
lea edx, [esp + 0x60]
lea ecx, [esp + 0xc8]
call fcn.00404119
add esp, 4
lea edx, [esp + 0xd4]
movaps xmm2, xmm6
lea ecx, [esp + 0xa4]
call fcn.004453e9
push eax
lea edx, [esp + 0x60]
lea ecx, [esp + 0xd8]
call fcn.00404119
add esp, 4
lea ecx, [esp + 0x5c]
call fcn.00410259
push 6
push 6
mov ecx, ebx
call fcn.00434bae
push dword [esp + 0x58]
lea eax, [esp + 0x60]
mov ecx, ebx
push eax
lea eax, [esp + 0xd4]
push eax
call fcn.00445310
push dword [esp + 0x58]
lea eax, [esp + 0x60]
mov ecx, ebx
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.00445310
push esi
lea eax, [esp + 0x60]
mov ecx, ebx
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.00445310
push 0
lea eax, [esp + 0x60]
mov ecx, ebx
push eax
lea eax, [esp + 0xd4]
push eax
call fcn.00445310
push dword [esp + 0x98]
lea eax, [esp + 0x60]
mov ecx, ebx
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.00445310
push 0
lea eax, [esp + 0x60]
mov ecx, ebx
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.00445310
push ecx
mov dword [esp], 0x3fc00000
lea eax, [esp + 0xd8]
push edi
push eax
lea eax, [esp + 0xd0]
mov ecx, ebx
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.004370ab
movss xmm0, dword [0x4831d4]
subss xmm0, dword [esp + 0x40]
call fcn.004042a6
movaps xmm4, xmm0
lea eax, [esp + 0xc4]
movss xmm0, dword [esp + 0x2c]
push eax
call fcn.004042a6
lea eax, [esp + 0xd0]
movaps xmm3, xmm0
push eax
lea edx, [esp + 0xdc]
lea ecx, [esp + 0xac]
call fcn.004453b7
add esp, 4
lea ecx, [esp + 0x84]
movaps xmm3, xmm4
mov edx, eax
call fcn.004453b7
movss xmm2, dword [0x483274]
add esp, 4
mov ebx, dword [esp + 0x108]
mov edi, dword [esp + 0xf4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push 0xc
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
pop ecx
jmp 0x452382
test dword [esp + 0x14], 0x2000000
je 0x45237e
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
movss xmm2, dword [esp + 0x20]
push eax
push ecx
push ecx
push eax
movaps xmm1, xmm2
lea ecx, [esp + 0xb4]
call fcn.00403cd5
push eax
lea edx, [esp + 0x48]
lea ecx, [esp + 0x94]
call fcn.00404119
mov edi, dword [esp + 0x58]
add esp, 4
mov ecx, edi
push eax
mov eax, edx
push eax
call fcn.00436fac
movss xmm2, dword [esp + 0x20]
lea ecx, [esp + 0xa4]
push esi
push esi
push 0
push 0
movaps xmm1, xmm2
call fcn.00403cd5
push eax
lea edx, [esp + 0x48]
lea ecx, [esp + 0x94]
call fcn.00404119
add esp, 4
mov ecx, edi
push eax
mov eax, edx
push eax
call fcn.00436fac
movss xmm2, dword [esp + 0x20]
lea ecx, [esp + 0xa4]
movaps xmm1, xmm2
call fcn.00403cd5
push eax
lea edx, [esp + 0x38]
lea ecx, [esp + 0x84]
call fcn.00404119
add esp, 4
xorps xmm0, xmm0
push dword [eax + 4]
push dword [eax]
push dword [esp + 0x114]
push dword [esp + 0xfc]
call fcn.00407f9f
movss xmm6, dword [0x483228]
add esp, 0x10
movss xmm2, dword [esp + 0xbc]
movss xmm3, dword [esp + 0x34]
subss xmm2, xmm6
movss xmm0, dword [esp + 0x2c]
addss xmm3, xmm6
call fcn.004042a6
movss xmm4, dword [esp + 0x20]
movaps xmm1, xmm3
mulss xmm0, xmm4
addss xmm0, dword [esp + 0x34]
addss xmm0, dword [0x483130]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
call fcn.0041ab48
movss xmm3, dword [esp + 0x38]
movss dword [esp + 0xb4], xmm0
addss xmm3, xmm6
movss xmm0, dword [esp + 0x38]
addss xmm0, xmm4
movaps xmm2, xmm0
movss dword [esp + 0xf0], xmm0
movss xmm0, dword [0x4831d4]
subss xmm2, xmm6
subss xmm0, dword [esp + 0x40]
call fcn.004042a6
mulss xmm0, xmm4
movaps xmm1, xmm3
addss xmm0, dword [esp + 0x38]
addss xmm0, dword [0x483130]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
call fcn.0041ab48
movss dword [esp + 0xb8], xmm0
xor edx, edx
movaps xmm0, xmm4
divss xmm0, dword [0x483274]
movss dword [esp + 0xbc], xmm0
push dword [esp + edx*4 + 0x114]
movss xmm1, dword [esp + 0xa4]
lea esi, [edx + 1]
push dword [esp + edx*4 + 0x118]
movd xmm2, esi
lea ecx, [esp + 0xac]
push dword [esp + edx*4 + 0x118]
cvtdq2ps xmm2, xmm2
push dword [esp + edx*4 + 0x11c]
mulss xmm2, xmm0
addss xmm2, dword [esp + 0x48]
call fcn.00403cd5
movss xmm1, dword [esp + 0xd0]
lea ecx, [esp + 0x90]
movd xmm2, edx
cvtdq2ps xmm2, xmm2
push eax
mulss xmm2, xmm0
addss xmm2, dword [esp + 0x4c]
call fcn.00403cd5
push eax
mov ecx, edi
call fcn.00436fac
movss xmm0, dword [esp + 0xbc]
mov edx, esi
cmp edx, 6
jl 0x452200
movss xmm2, dword [esp + 0xf0]
lea ecx, [esp + 0xa4]
movss xmm1, dword [esp + 0xa0]
call fcn.00403cd5
movss xmm2, dword [esp + 0x38]
lea ecx, [esp + 0x80]
movss xmm1, dword [esp + 0xc0]
mov edx, eax
call fcn.00403cd5
push dword [edx + 4]
xorps xmm0, xmm0
push dword [edx]
push dword [eax + 4]
push dword [eax]
call fcn.00407f9f
movd xmm0, ebx
lea ecx, [esp + 0xb4]
cvtdq2ps xmm0, xmm0
add esp, 0x10
movaps xmm1, xmm0
movaps xmm2, xmm0
addss xmm1, dword [0x4831d4]
call fcn.00403cd5
movss xmm0, dword [esp + 0x1c]
mov edx, eax
mulss xmm0, dword [esp + 0x20]
addss xmm0, dword [esp + 0x38]
addss xmm0, dword [0x483130]
cvttss2si ecx, xmm0
movss xmm0, dword [esp + 0xc0]
subss xmm0, dword [0x4831d4]
movd xmm2, ecx
lea ecx, [esp + 0x80]
cvtdq2ps xmm2, xmm2
movaps xmm1, xmm0
call fcn.00403cd5
push dword [edx + 4]
movss xmm1, dword [esp + 0x58]
push dword [edx]
mov edi, dword [esp + 0xfc]
push dword [eax + 4]
addss xmm1, dword [0x483228]
push dword [eax]
movss xmm2, dword [edi + 0x1510]
mov ecx, dword [esp + 0x54]
call fcn.00450932
movss xmm2, dword [0x483274]
add esp, 0x10
push 0xc
pop ecx
mov esi, dword [esp + 0x30]
cmp byte [esp + 0x1b], 0
je 0x452397
movss xmm2, dword [0x483290]
movss dword [esp + 0x28], xmm2
push ecx
push dword [esp + 0x7c]
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0xbc]
push eax
call fcn.004371c6
movss xmm2, dword [esp + 0x28]
lea eax, [esp + 0xb4]
addss xmm2, dword [0x4831d4]
push ecx
mov ecx, dword [esp + 0x48]
mov dword [esp], 0x3f800000
push 0xc
push dword [esp + 0x50]
push eax
call fcn.00437128
movss xmm2, dword [esp + 0x28]
lea eax, [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0x48]
mov dword [esp], 0x3f800000
push 0xc
push esi
push eax
call fcn.00437128
cmp dword [esp + 0xe8], 0x10000
mov esi, dword [esp + 0xec]
jne 0x4525af
movss xmm0, dword [esi + 0xc]
call fcn.004042a6
movss xmm1, dword [esp + 0x38]
addss xmm1, dword [esp + 0x20]
movss xmm3, dword [esp + 0xe0]
addss xmm3, dword [esp + 0x54]
movss xmm2, dword [esp + 0x38]
push ecx
movss dword [esp], xmm1
lea ecx, [esp + 0x84]
movss xmm1, dword [esp + 0xe4]
movss dword [esp + 0xc0], xmm0
call fcn.004043ff
xorps xmm1, xmm1
lea ecx, [esp + 0xa4]
movaps xmm2, xmm1
call fcn.00403cd5
lea ecx, [esp + 0x80]
push dword [eax + 4]
push dword [eax]
push dword [esp + 0x94]
push dword [esp + 0x94]
push dword [esp + 0x94]
push dword [esp + 0x94]
push 0
call fcn.00404443
mulss xmm0, dword [0x483130]
movaps xmm3, xmm1
mov ecx, dword [esp + 0x60]
xor edx, edx
movaps xmm2, xmm0
call fcn.0043b6f0
mov ecx, dword [esp + 0x94]
add esp, 0x1c
mov eax, ecx
and eax, 0xffffff
push eax
push eax
push ecx
push ecx
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x94]
push eax
call fcn.00436fac
push dword [esp + 0x8c]
xorps xmm0, xmm0
push dword [esp + 0x8c]
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.00407f9f
movss xmm3, dword [0x4831d4]
lea ecx, [esp + 0xb4]
movd xmm0, ebx
add esp, 0x10
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm0
movaps xmm2, xmm0
addss xmm1, xmm3
call fcn.00403cd5
movaps xmm0, xmm3
mov edx, eax
subss xmm0, dword [esp + 0xbc]
mulss xmm0, dword [esp + 0x20]
addss xmm0, dword [esp + 0x38]
addss xmm0, dword [0x483130]
cvttss2si ecx, xmm0
movss xmm0, dword [esp + 0xe0]
subss xmm0, xmm3
movd xmm2, ecx
lea ecx, [esp + 0x80]
cvtdq2ps xmm2, xmm2
movaps xmm1, xmm0
call fcn.00403cd5
push dword [edx + 4]
movss xmm0, dword [esp + 0x58]
push dword [edx]
addss xmm0, dword [0x483228]
push dword [eax + 4]
push dword [eax]
movss xmm2, dword [edi + 0x1510]
movaps xmm1, xmm0
mov ecx, dword [esp + 0x54]
call fcn.00450932
add esp, 0x10
call fcn.004112bb
mov ebx, dword [esp + 0x24]
test bl, bl
je 0x4525ed
push dword [esp + 0xdc]
lea eax, [esp + 0x130]
push esi
push eax
call sub.VCRUNTIME140.dll_memcmp
xor ecx, ecx
movzx ebx, bl
add esp, 0xc
test eax, eax
cmove ebx, ecx
test bl, bl
je 0x4525ed
mov ecx, dword [edi + 0x1c30]
call fcn.004088ec
call fcn.00410490
mov al, bl
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00464142
mov esp, ebp
pop ebp
ret