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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x310
mov eax, dword [0x623ec0]
xor eax, esp
mov dword [esp + 0x30c], eax
push esi
push edi
mov edi, ecx
mov eax, 0x167
cmp word [edi + 0xf4], ax
je 0x54f166
mov eax, dword [edi]
call dword [eax + 0x4c]
cmp eax, 1
jne 0x54f0f5
mov eax, dword [0x9c25a4]
mov edx, dword [eax + 0x10c]
lea eax, [edi + 0xfc]
push eax
push edx
mov esi, dword [edx]
call dword [esi + 0xc4]
mov ax, word [edi + 0xf4]
mov ecx, 0xc49
sub ax, cx
cmp ax, 4
ja 0x54e489
mov ecx, edi
call fcn.00583460
pop edi
pop esi
mov ecx, dword [esp + 0x30c]
xor ecx, esp
call fcn.0046676f
mov esp, ebp
pop ebp
ret
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x354], 1
je 0x54e562
push 0x2bf20
push 0
push dword [edi + 0x288]
call fcn.004abba0
test eax, eax
je 0x54f07c
imul ecx, dword [eax + 0x298], 0x108
mov eax, dword [0x9c25bc]
cmp byte [ecx + eax + 0x6ff8b], 0x4e
jne 0x54e542
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe98], 0
je 0x54e4fb
mov dword [eax + 0xe98], 0
mov eax, dword [eax + 0x10c]
push 0
push 0xb
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
push 0x1388
push 6
call fcn.004e1230
mov ecx, dword [0x9c25a4]
push eax
push 1
call fcn.004c3fe0
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe70], 4
je 0x54e542
mov dword [eax + 0xe70], 4
mov eax, dword [eax + 0x10c]
push 4
push 1
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xdfc], 4
je 0x54e5ba
push 4
push 1
mov dword [eax + 0xdfc], 4
push 0
jmp 0x54e5ab
mov eax, dword [0x9c25a4]
cmp dword [eax + 0x4ac], 0
je 0x54e58d
mov dword [eax + 0x4ac], 0
mov eax, dword [eax + 0x10c]
push 0
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe70], 1
je 0x54e5ba
push 1
push 1
mov dword [eax + 0xe70], 1
push 1
mov eax, dword [eax + 0x10c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
movzx eax, word [edi + 0x296]
test ax, ax
jne 0x54eab7
mov eax, dword [edi + 0x28c]
xorps xmm0, xmm0
movss dword [esp + 0xc], xmm0
cmp eax, 0x88
jne 0x54e5ea
movss xmm0, dword [0x604ce8]
jmp 0x54e5f9
cmp eax, 0x6d5
jne 0x54e5ff
movss xmm0, dword [0x604d6c]
movss dword [esp + 0xc], xmm0
movzx eax, word [edi + 0x284]
mov ecx, 0x305
cmp ax, cx
je 0x54e61a
mov ecx, 0x320
cmp ax, cx
jne 0x54e628
movss xmm0, dword [0x604d4c]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x2c]
lea eax, [esp + 0x190]
sub esp, 0xc
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x30]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x28]
movss dword [esp], xmm0
push eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x5c], 0x3f800000
mov dword [esp + 0x48], 0x3f800000
mov dword [esp + 0x34], 0x3f800000
mov dword [esp + 0x20], 0x3f800000
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x9c], 0x3f800000
mov dword [esp + 0x88], 0x3f800000
mov dword [esp + 0x74], 0x3f800000
mov dword [esp + 0x60], 0x3f800000
call fcn.00402997
movss xmm0, dword [edi + 0x34]
lea eax, [esp + 0x10]
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm0
push eax
call fcn.00402e1b
lea eax, [esp + 0x190]
push eax
lea eax, [esp + 0x14]
push eax
push eax
call fcn.00402022
movss xmm0, dword [esp + 0xc]
lea eax, [esp + 0x1d0]
addss xmm0, dword [edi + 0x290]
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm0
push eax
call fcn.00402997
movss xmm0, dword [0x604fb8]
lea eax, [esp + 0x50]
subss xmm0, dword [edi + 0x278]
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0xbfc90fdb
movss dword [esp], xmm0
push eax
call fcn.00402e1b
lea eax, [esp + 0x1d0]
push eax
lea eax, [esp + 0x54]
push eax
push eax
call fcn.00402022
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00402022
mov eax, dword [0x9c25a4]
lea edx, [esp + 0x10]
push edx
push 0x100
mov eax, dword [eax + 0x10c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb0]
push 0x2bf20
push 0
push dword [edi + 0x288]
call fcn.004abba0
test eax, eax
je 0x54f07c
mov edx, dword [eax]
mov ecx, eax
push 0
push 0
call dword [edx + 0xc]
movss xmm0, dword [edi + 0x2c]
lea eax, [esp + 0x190]
sub esp, 0xc
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x30]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x28]
movss dword [esp], xmm0
push eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x5c], 0x3f800000
mov dword [esp + 0x48], 0x3f800000
mov dword [esp + 0x34], 0x3f800000
mov dword [esp + 0x20], 0x3f800000
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x9c], 0x3f800000
mov dword [esp + 0x88], 0x3f800000
mov dword [esp + 0x74], 0x3f800000
mov dword [esp + 0x60], 0x3f800000
call fcn.00402997
movss xmm0, dword [edi + 0x34]
lea eax, [esp + 0x10]
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm0
push eax
call fcn.00402e1b
lea eax, [esp + 0x190]
push eax
lea eax, [esp + 0x14]
push eax
push eax
call fcn.00402022
movss xmm0, dword [edi + 0x290]
lea eax, [esp + 0x1d0]
mulss xmm0, dword [0x6053b4]
sub esp, 0xc
addss xmm0, dword [esp + 0x18]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm0
push eax
call fcn.00402997
movss xmm0, dword [edi + 0x278]
lea eax, [esp + 0x50]
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0xbfc90fdb
movss dword [esp], xmm0
push eax
call fcn.00402e1b
lea eax, [esp + 0x1d0]
push eax
lea eax, [esp + 0x54]
push eax
push eax
call fcn.00402022
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00402022
mov eax, dword [0x9c25a4]
lea edx, [esp + 0x10]
push edx
push 0x100
mov eax, dword [eax + 0x10c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb0]
push 0x2bf20
push 0
push dword [edi + 0x28c]
jmp 0x54edad
cmp ax, 1
jne 0x54edca
mov ecx, dword [edi + 0x28c]
xorps xmm2, xmm2
movss xmm3, dword [edi + 0x278]
movss xmm1, dword [edi + 0x30]
movss xmm4, dword [0x604ddc]
subss xmm1, xmm3
lea eax, [ecx - 0x3dd]
cmp eax, 3
ja 0x54eb21
mov eax, dword [edi + 0x274]
xorps xmm4, xmm4
movss xmm2, dword [0x60538c]
subss xmm1, dword [0x604da8]
test eax, eax
je 0x54eb2d
movss xmm0, dword [0x604ce8]
subss xmm0, xmm3
movss dword [eax + 0x10c], xmm0
jmp 0x54eb2d
cmp ecx, 0xae0
je 0x54f166
addss xmm4, dword [edi + 0x2c]
addss xmm2, dword [edi + 0x28]
sub esp, 0xc
mov dword [esp + 0xd4], 0
lea eax, [esp + 0x21c]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
movss dword [esp + 8], xmm4
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
push eax
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xdc], 0x3f800000
mov dword [esp + 0xc8], 0x3f800000
mov dword [esp + 0xb4], 0x3f800000
mov dword [esp + 0xa0], 0x3f800000
mov dword [esp + 0x158], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x15c], 0x3f800000
mov dword [esp + 0x148], 0x3f800000
mov dword [esp + 0x134], 0x3f800000
mov dword [esp + 0x120], 0x3f800000
call fcn.00402997
movss xmm0, dword [edi + 0x34]
lea eax, [esp + 0x90]
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm0
push eax
call fcn.00402e1b
lea eax, [esp + 0x210]
push eax
lea eax, [esp + 0x94]
push eax
push eax
call fcn.00402022
movss xmm0, dword [edi + 0x290]
lea eax, [esp + 0x250]
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm0
push eax
call fcn.00402997
sub esp, 0xc
lea eax, [esp + 0x11c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0xbfc90fdb
mov dword [esp], 0x40490fdb
push eax
call fcn.00402e1b
lea eax, [esp + 0x250]
push eax
lea eax, [esp + 0x114]
push eax
push eax
call fcn.00402022
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x114]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.00402022
mov eax, dword [0x9c25a4]
lea edx, [esp + 0x90]
push edx
push 0x100
mov eax, dword [eax + 0x10c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb0]
push 0x2bf20
push 0
push dword [edi + 0x288]
call fcn.004abba0
test eax, eax
je 0x54f07c
mov edx, dword [eax]
mov ecx, eax
push 0
push 0
call dword [edx + 0xc]
jmp 0x54f09b
cmp ax, 2
jne 0x54f09b
movss xmm0, dword [edi + 0x2c]
lea eax, [esp + 0x290]
addss xmm0, dword [0x604ddc]
sub esp, 0xc
mov dword [esp + 0x114], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x278]
addss xmm0, dword [edi + 0x30]
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xf4], 0
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x28]
addss xmm0, dword [0x604d04]
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], 0
movss dword [esp], xmm0
push eax
mov dword [esp + 0x11c], 0x3f800000
mov dword [esp + 0x108], 0x3f800000
mov dword [esp + 0xf4], 0x3f800000
mov dword [esp + 0xe0], 0x3f800000
mov dword [esp + 0x198], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x190], 0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x184], 0
mov dword [esp + 0x180], 0
mov dword [esp + 0x17c], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x19c], 0x3f800000
mov dword [esp + 0x188], 0x3f800000
mov dword [esp + 0x174], 0x3f800000
mov dword [esp + 0x160], 0x3f800000
call fcn.00402997
movss xmm0, dword [edi + 0x34]
lea eax, [esp + 0xd0]
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm0
push eax
call fcn.00402e1b
lea eax, [esp + 0x290]
push eax
lea eax, [esp + 0xd4]
push eax
push eax
call fcn.00402022
movss xmm0, dword [edi + 0x290]
lea eax, [esp + 0x2d0]
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm0
push eax
call fcn.00402997
sub esp, 0xc
lea eax, [esp + 0x15c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0xbfc90fdb
mov dword [esp], 0x40490fdb
push eax
call fcn.00402e1b
lea eax, [esp + 0x2d0]
push eax
lea eax, [esp + 0x154]
push eax
push eax
call fcn.00402022
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x154]
push eax
lea eax, [esp + 0xd8]
push eax
call fcn.00402022
mov eax, dword [0x9c25a4]
lea edx, [esp + 0xd0]
push edx
push 0x100
mov eax, dword [eax + 0x10c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb0]
push 0x2bf20
push 0
push dword [edi + 0x288]
call fcn.004abba0
mov ecx, eax
test ecx, ecx
jne 0x54f092
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x30c]
xor ecx, esp
call fcn.0046676f
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx]
push 0
push 0
call dword [eax + 0xc]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe70], 1
je 0x54f0c8
mov dword [eax + 0xe70], 1
mov eax, dword [eax + 0x10c]
push 1
push 1
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x9c25a4]
cmp dword [eax + 0xe98], 1
je 0x54f0f5
mov dword [eax + 0xe98], 1
mov eax, dword [eax + 0x10c]
push 1
push 0xb
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
mov ecx, dword [0x9c25b0]
mov edx, dword [ecx + 0x4c]
test edx, edx
je 0x54f166
mov esi, dword [edx + 0x660]
movss xmm1, dword [edi + 0x28]
lea eax, [esi - 0x29]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
ja 0x54f154
lea eax, [esi + 0x29]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
ja 0x54f154
mov edx, dword [edx + 0x664]
movss xmm1, dword [edi + 0x2c]
lea eax, [edx - 0x29]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
ja 0x54f154
lea eax, [edx + 0x29]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x54f166
cmp dword [ecx + 0x104], edi
jne 0x54f166
mov dword [ecx + 0x104], 0
mov ecx, dword [esp + 0x314]
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.0046676f
mov esp, ebp
pop ebp
ret