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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
push esi
mov esi, dword [0x10087770]
push edi
mov edi, edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x30], edi
mov eax, dword [esi + 0x19ac]
mov dword [esp + 0x18], esi
mov byte [eax + 0x7c], 1
mov edx, dword [esi + 0x19ac]
mov dword [esp + 0x3c], edx
cmp byte [edx + 0x7f], 0
je 0x459806
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [ebp + 8], 0x10
xorps xmm1, xmm1
movss xmm0, dword [esi + 0x1554]
addss xmm0, xmm0
addss xmm0, dword [esi + 0x18c8]
movss dword [esp + 0x74], xmm0
je 0x45982e
xorps xmm2, xmm2
jmp 0x459839
movaps xmm2, xmm0
addss xmm2, dword [esi + 0x1568]
test byte [esi + 0x1a68], 1
je 0x45984c
movss xmm0, dword [esi + 0x1a6c]
jmp 0x459854
movss xmm0, dword [edx + 0x170]
comiss xmm1, xmm0
jbe 0x45988c
mov eax, edx
cmp dword [eax + 0x1c0], 0
movss xmm1, dword [eax + 0x228]
je 0x459874
movss xmm1, dword [eax + 0x208]
subss xmm1, dword [edx + 0xc8]
addss xmm1, xmm0
movss xmm0, dword [0x10081d0c]
maxss xmm0, xmm1
mov dword [esp + 0x48], ecx
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm0, xmm2
movss dword [esp + 0x44], xmm0
cmp ecx, 0xffffffff
jae 0x4598d0
mov esi, ecx
nop word [eax + eax]
mov cl, byte [esi]
test cl, cl
je 0x4598cc
cmp cl, 0x23
jne 0x4598c2
cmp byte [esi + 1], cl
je 0x4598cc
inc esi
mov dword [esp + 0x48], esi
cmp esi, 0xffffffff
jb 0x4598b2
mov esi, dword [esp + 0x18]
mov dword [esi + 0x1a68], 0
call fcn.0042f382
mov ecx, dword [esp + 0x4c]
call fcn.0042f242
mov ecx, dword [ebp + 8]
mov dword [esp + 0x78], ecx
test cl, 0x20
je 0x459903
and ecx, 0xff9fffff
or ecx, 0x100008
mov dword [ebp + 8], ecx
test cl, 8
jne 0x459914
mov edx, ecx
mov ecx, edi
call fcn.0045e092
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 0x2cac]
test ecx, 0x700000
jne 0x45992b
mov eax, edx
and eax, 0x700000
or ecx, eax
test ecx, 0x1800000
jne 0x45993c
mov eax, edx
and eax, 0x1800000
or ecx, eax
test ecx, 0x6000000
jne 0x45994d
mov eax, edx
and eax, 0x6000000
or ecx, eax
test ecx, 0x18000000
jne 0x45995e
mov eax, edx
and eax, 0x18000000
or ecx, eax
mov esi, dword [0x10054230]
and edx, 0xe00fffff
or ecx, edx
mov edx, ecx
mov dword [ebp + 8], ecx
and edx, 0x700000
je 0x459980
lea eax, [edx - 1]
test edx, eax
je 0x459997
push 0x114c
push 0x1007fe10
push 0x10080bb8
call esi
mov ecx, dword [ebp + 8]
add esp, 0xc
mov edx, ecx
and edx, 0x18000000
je 0x4599a8
lea eax, [edx - 1]
test edx, eax
je 0x4599bf
push 0x114d
push 0x1007fe10
push 0x10080c30
call esi
mov ecx, dword [ebp + 8]
add esp, 0xc
movss xmm6, dword [edi]
mov edx, ecx
movss xmm1, dword [edi + 4]
mov eax, ecx
movss xmm3, dword [edi + 8]
shr edx, 1
shr eax, 0x13
not dl
and eax, 0xffffff01
movss dword [esp + 0x20], xmm6
and edx, 0xffffff01
mov dword [esp + 0x70], eax
movzx eax, dl
add eax, 3
mov dword [esp + 0x50], edx
mov dword [esp + 0x1c], eax
movss dword [esp + 0x24], xmm1
movss dword [esp + 0x28], xmm3
test dl, dl
je 0x459a18
movss xmm0, dword [edi + 0xc]
movss dword [esp + 0x2c], xmm0
jmp 0x459a20
mov dword [esp + 0x2c], 0x3f800000
movss xmm7, dword [0x10081bdc]
mov eax, ecx
and eax, 0x10100000
mov dword [esp + 0x7c], eax
cmp eax, 0x10100000
jne 0x459a69
movss xmm2, dword [esp + 0x28]
lea eax, [esp + 0x28]
movss xmm1, dword [esp + 0x24]
lea edx, [esp + 0x24]
movss xmm0, dword [esp + 0x20]
lea ecx, [esp + 0x20]
push eax
call fcn.00422e12
mov ecx, dword [ebp + 8]
add esp, 4
jmp 0x459afe
mov eax, ecx
and eax, 0x8200000
cmp eax, 0x8200000
jne 0x459afe
comiss xmm3, xmm1
xorps xmm5, xmm5
movaps xmm2, xmm1
jbe 0x459a94
movss xmm5, dword [0x10081e3c]
movaps xmm2, xmm3
movaps xmm3, xmm1
comiss xmm2, xmm6
movaps xmm4, xmm6
jbe 0x459ab1
movss xmm0, dword [0x10081e28]
movaps xmm4, xmm2
subss xmm0, xmm5
movaps xmm2, xmm6
movaps xmm5, xmm0
movaps xmm0, xmm2
movss dword [esp + 0x28], xmm4
minss xmm0, xmm3
movaps xmm1, xmm4
subss xmm2, xmm3
subss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x10081d80]
addss xmm0, xmm7
divss xmm2, xmm0
movaps xmm0, xmm4
addss xmm0, xmm7
addss xmm2, xmm5
divss xmm1, xmm0
andps xmm2, xmmword [0x10083530]
movss dword [esp + 0x20], xmm2
movss dword [esp + 0x24], xmm1
movss xmm0, dword [esp + 0x20]
comiss xmm0, dword [0x10081bcc]
movss xmm2, dword [0x10081e2c]
movss xmm1, dword [0x10081ca0]
jb 0x459b22
movaps xmm4, xmm1
jmp 0x459b25
movaps xmm4, xmm2
movss xmm0, dword [esp + 0x20]
movss xmm3, dword [0x10081ddc]
mulss xmm0, xmm3
addss xmm0, xmm4
cvttss2si edi, xmm0
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [0x10081bcc]
mov dword [esp + 0x54], edi
jb 0x459b57
movaps xmm4, xmm1
jmp 0x459b5a
movaps xmm4, xmm2
movss xmm0, dword [esp + 0x24]
mulss xmm0, xmm3
addss xmm0, xmm4
cvttss2si esi, xmm0
movss xmm0, dword [esp + 0x28]
comiss xmm0, dword [0x10081bcc]
mov dword [esp + 0x58], esi
jb 0x459b84
movaps xmm4, xmm1
jmp 0x459b87
movaps xmm4, xmm2
movss xmm0, dword [esp + 0x28]
mulss xmm0, xmm3
addss xmm0, xmm4
cvttss2si edx, xmm0
movss xmm0, dword [esp + 0x2c]
comiss xmm0, dword [0x10081bcc]
mov dword [esp + 0x5c], edx
jae 0x459baf
movaps xmm1, xmm2
movss xmm0, dword [esp + 0x2c]
mulss xmm0, xmm3
mov byte [esp + 0x12], 0
mov byte [esp + 0x13], 0
addss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [esp + 0x34], eax
mov dword [esp + 0x60], eax
test ecx, 0x300000
je 0x459f8c
test cl, 0x20
jne 0x459f8c
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
movss xmm4, dword [esp + 0x44]
movaps xmm1, xmm4
lea eax, [edx - 1]
movss xmm2, dword [edi + 0x1568]
movd xmm3, eax
cvtdq2ps xmm3, xmm3
push 0
push 0
movaps xmm0, xmm3
mulss xmm0, xmm2
subss xmm1, xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvttss2si eax, xmm1
movss xmm1, dword [0x10081d0c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm1, xmm0
addss xmm2, xmm1
movss dword [esp + 0x48], xmm1
movss xmm1, dword [0x10081d0c]
mulss xmm2, xmm3
movss xmm3, dword [0x10081e18]
subss xmm4, xmm2
cvttss2si eax, xmm4
movd xmm0, eax
mov eax, ecx
and eax, 0x1000000
mov ecx, 0x10080ca8
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x1c], eax
mov eax, 0x10080ca0
cmove eax, ecx
mov ecx, dword [0x10087770]
push eax
push ecx
lea eax, [esp + 0x44]
mov dword [esp], 0xbf800000
movss xmm2, dword [ecx + 0x18c8]
maxss xmm1, xmm0
mov ecx, dword [ecx + 0x18c4]
push eax
movss dword [esp + 0x58], xmm1
call fcn.0044ac82
movss xmm0, dword [esp + 0x34]
addss xmm0, dword [0x10081d08]
movss xmm1, dword [esp + 0x40]
mov ecx, dword [ebp + 8]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jb 0x459cdd
xor edx, edx
jmp 0x459cec
mov edx, ecx
and edx, 0x200000
neg edx
sbb edx, edx
neg edx
inc edx
xor esi, esi
cmp dword [esp + 0x1c], esi
jbe 0x45a181
shl edx, 4
cmp dword [esp + 0x14], esi
je 0x459e50
mov eax, dword [esp + 0x1c]
and ecx, 8
mov dword [esp + 0x34], ecx
lea ecx, [edx + 0x100813d8]
mov dword [esp + 0x68], esi
mov dword [esp + 0x14], ecx
nop dword [eax]
test esi, esi
je 0x459d44
movss xmm1, dword [edi + 0x1568]
xorps xmm0, xmm0
call fcn.0042f752
movss xmm1, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
lea edi, [esi + 1]
cmp edi, eax
jge 0x459d50
movaps xmm0, xmm1
jmp 0x459d56
movss xmm0, dword [esp + 0x44]
mov eax, dword [0x10087770]
or dword [eax + 0x1a68], 1
cmp byte [esp + 0x70], 0
movss dword [eax + 0x1a6c], xmm0
je 0x459d76
xorps xmm0, xmm0
jmp 0x459d7e
movss xmm0, dword [0x10081d0c]
movss xmm3, dword [0x10081bf4]
lea eax, [esp + 0x64]
push ecx
mov dword [esp], 0x3f800000
mov edx, 8
push dword [ecx]
mov ecx, dword [esi*4 + 0x10081370]
push eax
lea eax, [esp + 0x74]
movss dword [esp + 0x70], xmm0
push eax
lea eax, [esp + 0x30]
lea eax, [eax + esi*4]
push eax
call fcn.00453432
mov cl, byte [esp + 0x26]
add esp, 0x14
or cl, al
or byte [esp + 0x13], cl
cmp dword [esp + 0x34], 0
mov byte [esp + 0x12], cl
jne 0x459e25
mov eax, dword [0x10087770]
cmp byte [eax + 0x3e3], 0
mov esi, dword [eax + 0x19ac]
je 0x459e25
mov ecx, 8
call fcn.00425a72
test al, al
je 0x459e25
push ecx
push 0x10080cb0
mov ecx, esi
call fcn.00425352
mov esi, eax
test esi, esi
jne 0x459e1e
push 0x1c6a
push 0x10054490
push 0x10054644
call dword [0x10054230]
add esp, 0xc
mov ecx, esi
call fcn.0042fa52
mov ecx, dword [esp + 0x14]
mov esi, edi
mov eax, dword [esp + 0x1c]
add ecx, 4
movss xmm1, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
cmp esi, eax
jl 0x459d22
mov ecx, dword [ebp + 8]
jmp 0x45a181
xor esi, esi
mov eax, 0xff
cmp byte [esp + 0x70], 0
mov dword [esp + 0x68], esi
cmovne eax, esi
and ecx, 8
mov dword [esp + 0x64], ecx
lea ecx, [edx + 0x10081380]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
nop word [eax + eax]
test esi, esi
jle 0x459ea4
movss xmm1, dword [edi + 0x1568]
xorps xmm0, xmm0
call fcn.0042f752
movss xmm1, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
lea edi, [esi + 1]
cmp edi, eax
jge 0x459eb0
movaps xmm0, xmm1
jmp 0x459eb6
movss xmm0, dword [esp + 0x44]
mov eax, dword [0x10087770]
mov edx, 4
movss xmm3, dword [0x10081d0c]
push ecx
mov dword [esp], 0x3f800000
or dword [eax + 0x1a68], 1
push dword [ecx]
mov ecx, dword [esi*4 + 0x10081370]
movss dword [eax + 0x1a6c], xmm0
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x64]
lea eax, [eax + esi*4]
push eax
call fcn.00453432
or byte [esp + 0x26], al
add esp, 0x14
cmp dword [esp + 0x64], 0
jne 0x459f61
mov eax, dword [0x10087770]
cmp byte [eax + 0x3e3], 0
mov esi, dword [eax + 0x19ac]
je 0x459f61
mov ecx, 8
call fcn.00425a72
test al, al
je 0x459f61
push ecx
push 0x10080cb0
mov ecx, esi
call fcn.00425352
mov esi, eax
test esi, esi
jne 0x459f5a
push 0x1c6a
push 0x10054490
push 0x10054644
call dword [0x10054230]
add esp, 0xc
mov ecx, esi
call fcn.0042fa52
mov ecx, dword [esp + 0x14]
mov esi, edi
mov eax, dword [esp + 0x1c]
add ecx, 4
movss xmm1, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
cmp esi, eax
jl 0x459e82
mov ecx, dword [ebp + 8]
jmp 0x45a181
mov eax, ecx
and eax, 0x400020
cmp eax, 0x400000
jne 0x45a17d
cmp byte [esp + 0x50], 0
mov eax, 0xff
je 0x459fff
mov ecx, dword [esp + 0x34]
test ecx, ecx
jns 0x459fb6
xor ecx, ecx
jmp 0x459fbb
cmp ecx, eax
cmovg ecx, eax
test edx, edx
jns 0x459fc3
xor edx, edx
jmp 0x459fc8
cmp edx, eax
cmovg edx, eax
test edi, edi
jns 0x459fd0
xor edi, edi
jmp 0x459fd5
cmp edi, eax
cmovg edi, eax
test esi, esi
jns 0x459fdd
xor esi, esi
jmp 0x459fe2
cmp esi, eax
cmovg esi, eax
push ecx
push edx
push esi
push edi
push 0x10080cb8
lea eax, [esp + 0xa4]
push 0x40
push eax
call fcn.004226d2
add esp, 0x1c
jmp 0x45a040
test esi, esi
jns 0x45a007
xor esi, esi
jmp 0x45a00c
cmp esi, eax
cmovg esi, eax
test edx, edx
jns 0x45a014
xor edx, edx
jmp 0x45a019
cmp edx, eax
cmovg edx, eax
test edi, edi
jns 0x45a021
xor edi, edi
jmp 0x45a026
cmp edi, eax
cmovg edi, eax
push edx
push esi
push edi
push 0x10080ccc
lea eax, [esp + 0xa0]
push 0x40
push eax
call fcn.004226d2
add esp, 0x18
mov eax, dword [0x10087770]
xor edx, edx
movss xmm4, dword [esp + 0x44]
mov ecx, 0x10080cdc
push 0
push 0
or dword [eax + 0x1a68], 1
movss dword [eax + 0x1a6c], xmm4
lea eax, [esp + 0x70]
push 6
push eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x78], 0
push 0x40
push eax
mov dword [esp + 0x84], 0
call fcn.004562c2
add esp, 0x18
test al, al
je 0x45a11e
mov byte [esp + 0x12], 1
lea ecx, [esp + 0x90]
mov al, byte [ecx]
cmp al, 0x23
je 0x45a0b3
cmp al, 0x20
je 0x45a0b3
cmp al, 9
jne 0x45a0b6
inc ecx
jmp 0x45a0a5
cmp byte [esp + 0x50], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
je 0x45a101
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x60]
push eax
push 0x10080ce4
push ecx
call fcn.00420c22
add esp, 0x18
jmp 0x45a11e
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x5c]
push eax
push 0x10080cf8
push ecx
call fcn.00420c22
add esp, 0x14
mov ecx, dword [ebp + 8]
test cl, 8
jne 0x45a17d
mov eax, dword [0x10087770]
cmp byte [eax + 0x3e3], 0
mov esi, dword [eax + 0x19ac]
je 0x45a17d
mov ecx, 8
call fcn.00425a72
test al, al
je 0x45a17a
push ecx
push 0x10080cb0
mov ecx, esi
call fcn.00425352
mov esi, eax
test esi, esi
jne 0x45a173
push 0x1c6a
push 0x10054490
push 0x10054644
call dword [0x10054230]
add esp, 0xc
mov ecx, esi
call fcn.0042fa52
mov ecx, dword [ebp + 8]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], 0
test cl, 0x10
jne 0x45a41a
test cl, 0x20
jne 0x45a1aa
movss xmm1, dword [edi + 0x1568]
xorps xmm0, xmm0
call fcn.0042f752
mov ecx, dword [ebp + 8]
cmp byte [esp + 0x50], 0
mov esi, dword [esp + 0x30]
je 0x45a1bc
movss xmm1, dword [esi + 0xc]
jmp 0x45a1c4
movss xmm1, dword [0x10081d0c]
movss xmm0, dword [esi]
lea edx, [esp + 0x80]
mov dword [esp + 0x38], 0
push dword [esp + 0x38]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [esi + 4]
mov dword [esp + 0x38], 0
push dword [esp + 0x38]
movss dword [esp + 0x8c], xmm0
movss xmm0, dword [esi + 8]
push ecx
mov ecx, 0x10080d08
movss dword [esp + 0x94], xmm0
movss dword [esp + 0x98], xmm1
call fcn.0045d5b2
mov ecx, dword [ebp + 8]
add esp, 0xc
test al, al
je 0x45a2c5
test cl, 4
jne 0x45a2c5
mov ecx, dword [0x10087770]
movups xmm0, xmmword [esp + 0x80]
push ecx
push 0x10080d18
movups xmmword [edi + 0x2cb0], xmm0
mov ecx, dword [ecx + 0x19ac]
call fcn.00425352
mov ecx, eax
call fcn.0042fa52
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp + 8]
movss xmm1, dword [eax + 0x110]
movss xmm0, dword [eax + 0x11c]
addss xmm0, dword [edi + 0x1564]
mov eax, dword [0x10087770]
subss xmm1, dword [0x10081d0c]
or dword [eax + 0x1a10], 1
movss dword [eax + 0x1a24], xmm0
movss dword [eax + 0x1a20], xmm1
mov dword [eax + 0x1a28], 0
mov dword [eax + 0x1a2c], 0
mov dword [eax + 0x1a14], 1
test cl, 8
jne 0x45a325
mov eax, dword [0x10087770]
cmp byte [eax + 0x3e3], 0
mov esi, dword [eax + 0x19ac]
je 0x45a321
mov ecx, 8
call fcn.00425a72
test al, al
je 0x45a31e
push ecx
push 0x10080cb0
mov ecx, esi
call fcn.00425352
mov esi, eax
test esi, esi
jne 0x45a317
push 0x1c6a
push 0x10054490
push 0x10054644
call dword [0x10054230]
add esp, 0xc
mov ecx, esi
call fcn.0042fa52
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x30]
mov edx, dword [0x10087770]
mov eax, dword [edx + 0x1a9c]
cmp eax, dword [edx + 0x1aa8]
jg 0x45a348
mov dword [edx + 0x1a10], 0
jmp 0x45a41a
push ecx
mov ecx, dword [edx + 0x19ac]
push 0x10080d18
call fcn.00425352
mov edx, 0x141
mov ecx, eax
call fcn.004300e2
test al, al
je 0x45a417
mov eax, dword [edi + 0x19ac]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
cmp ecx, eax
je 0x45a3c7
push 0
mov edx, eax
call fcn.0044c732
mov ecx, dword [0x10087770]
add esp, 4
mov eax, dword [ecx + 0x19ac]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19ac]
cmp byte [eax + 0x7f], 0
jne 0x45a3c7
xorps xmm1, xmm1
mov dword [esp + 0x34], 0
lea ecx, [esp + 0x34]
mov dword [esp + 0x38], 0
call fcn.004257a2
mov eax, dword [0x10087770]
mov edx, esi
movss xmm0, dword [esp + 0x74]
mov ecx, 0x1007e8a0
mulss xmm0, dword [0x10081d9c]
or dword [eax + 0x1a68], 1
movss dword [eax + 0x1a6c], xmm0
lea eax, [edi + 0x2cb0]
push eax
mov eax, dword [esp + 0x7c]
and eax, 0x1f890002
or eax, 0x740080
push eax
call fcn.0045ad22
or byte [esp + 0x1a], al
add esp, 8
call fcn.00430262
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x48]
cmp dword [esp + 0x4c], esi
je 0x45a448
test cl, cl
js 0x45a448
movss xmm1, dword [edi + 0x1568]
xorps xmm0, xmm0
call fcn.0042f752
mov ecx, dword [esp + 0x4c]
mov edx, esi
push 0
call fcn.0044c732
add esp, 4
cmp byte [esp + 0x12], 0
je 0x45a599
cmp dword [esp + 0x14], 0
jne 0x45a599
cmp byte [esp + 0x13], 0
jne 0x45a482
movups xmm0, xmmword [esp + 0x54]
cvtdq2ps xmm0, xmm0
divps xmm0, xmmword [0x10083510]
movups xmmword [esp + 0x20], xmm0
nop word [eax + eax]
mov eax, dword [ebp + 8]
and eax, 0x8200000
cmp eax, 0x8200000
jne 0x45a4b8
movss xmm2, dword [esp + 0x28]
lea eax, [esp + 0x28]
movss xmm1, dword [esp + 0x24]
lea edx, [esp + 0x24]
movss xmm0, dword [esp + 0x20]
lea ecx, [esp + 0x20]
push eax
call fcn.00422e12
add esp, 4
cmp dword [esp + 0x7c], 0x10100000
jne 0x45a563
movss xmm2, dword [esp + 0x24]
xorps xmm5, xmm5
movss xmm4, dword [esp + 0x28]
movaps xmm0, xmm2
comiss xmm4, xmm0
movss xmm3, dword [esp + 0x20]
movaps xmm1, xmm3
jbe 0x45a4f4
movss xmm5, dword [0x10081e3c]
movaps xmm2, xmm4
movaps xmm4, xmm0
comiss xmm2, xmm1
jbe 0x45a50e
movss xmm0, dword [0x10081e28]
movaps xmm3, xmm2
subss xmm0, xmm5
movaps xmm2, xmm1
movaps xmm5, xmm0
movaps xmm0, xmm2
movss dword [esp + 0x28], xmm3
minss xmm0, xmm4
movaps xmm1, xmm3
subss xmm2, xmm4
subss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x10081d80]
addss xmm0, dword [0x10081bdc]
divss xmm2, xmm0
movaps xmm0, xmm3
addss xmm0, dword [0x10081bdc]
addss xmm2, xmm5
divss xmm1, xmm0
andps xmm2, xmmword [0x10083530]
movss dword [esp + 0x20], xmm2
movss dword [esp + 0x24], xmm1
cmp byte [esp + 0x50], 0
mov eax, dword [esp + 0x30]
movss xmm0, dword [esp + 0x20]
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x24]
movss dword [eax + 4], xmm0
movss xmm0, dword [esp + 0x28]
movss dword [eax + 8], xmm0
je 0x45a599
movss xmm0, dword [esp + 0x2c]
movss dword [eax + 0xc], xmm0
mov eax, dword [0x10087770]
mov esi, dword [eax + 0x19ac]
cmp dword [esi + 0x1c4], 0
jg 0x45a5c5
push 0x566
push 0x100543c0
push 0x10057b70
call dword [0x10054230]
add esp, 0xc
dec dword [esi + 0x1c4]
call fcn.0042f4c2
mov eax, dword [esp + 0x3c]
test byte [eax + 0x10c], 1
je 0x45a754
test dword [ebp + 8], 0x200
jne 0x45a754
call fcn.004355a2
test al, al
je 0x45a754
mov ecx, 0x1007e8c0
mov byte [esp + 0x13], 0
call fcn.00435662
mov esi, dword [esp + 0x30]
test eax, eax
je 0x45a62c
mov eax, dword [eax]
mov byte [esp + 0x13], 1
mov byte [esp + 0x12], 1
movq xmm0, qword [eax]
movq qword [esi], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
mov ecx, 0x1007e8c8
call fcn.00435662
mov ecx, eax
test ecx, ecx
je 0x45a656
mov eax, dword [esp + 0x1c]
shl eax, 2
push eax
push dword [ecx]
push esi
call fcn.00472843
add esp, 0xc
mov byte [esp + 0x12], 1
jmp 0x45a661
cmp byte [esp + 0x13], 0
je 0x45a705
test dword [ebp + 8], 0x10000000
je 0x45a705
movss xmm2, dword [esi + 4]
movss xmm4, dword [esi + 8]
comiss xmm4, xmm2
movss xmm3, dword [esi]
jbe 0x45a694
movss xmm5, dword [0x10081e3c]
movaps xmm0, xmm2
movaps xmm2, xmm4
movaps xmm4, xmm0
jmp 0x45a697
xorps xmm5, xmm5
comiss xmm2, xmm3
jbe 0x45a6b4
movaps xmm0, xmm3
movaps xmm3, xmm2
movaps xmm2, xmm0
movss xmm0, dword [0x10081e28]
subss xmm0, xmm5
movaps xmm5, xmm0
movaps xmm0, xmm2
movss dword [esi + 8], xmm3
minss xmm0, xmm4
movaps xmm1, xmm3
subss xmm2, xmm4
subss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [0x10081d80]
addss xmm0, dword [0x10081bdc]
divss xmm2, xmm0
movaps xmm0, xmm3
addss xmm0, dword [0x10081bdc]
addss xmm2, xmm5
divss xmm1, xmm0
andps xmm2, xmmword [0x10083530]
movss dword [esi], xmm2
movss dword [esi + 4], xmm1
mov esi, dword [0x10087770]
cmp byte [esi + 0x1d18], 0
jne 0x45a72c
push 0x2462
push 0x10054490
push 0x100571f0
call dword [0x10054230]
add esp, 0xc
cmp byte [esi + 0x1d19], 0
jne 0x45a74d
push 0x2463
push 0x10054490
push 0x100574f4
call dword [0x10054230]
add esp, 0xc
mov byte [esi + 0x1d19], 0
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x45a77a
mov eax, dword [edi + 0x19d0]
test eax, eax
je 0x45a77a
cmp dword [edi + 0x19f4], ecx
mov ecx, dword [esp + 0x3c]
jne 0x45a77e
mov dword [ecx + 0x108], eax
jmp 0x45a77e
mov ecx, dword [esp + 0x3c]
mov dl, byte [esp + 0x12]
test dl, dl
je 0x45a7d9
mov esi, dword [0x10087770]
mov eax, dword [esi + 0x19d0]
cmp eax, dword [ecx + 0x108]
je 0x45a7c3
test eax, eax
je 0x45a7c3
cmp byte [esi + 0x1d18], 0
jne 0x45a7c3
push 0xb12
push 0x10054490
push 0x10054658
call dword [0x10054230]
mov dl, byte [esp + 0x1e]
add esp, 0xc
mov ecx, dword [esi + 0x19ac]
mov word [esi + 0x19df], 0x101
or dword [ecx + 0x10c], 4
pop edi
mov al, dl
pop esi
mov esp, ebp
pop ebp
ret