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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
mov eax, dword [0x4c900c]
xor eax, esp
mov dword [esp + 0x68], eax
mov edx, dword [0x4c9c24]
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [esp + 0x4c], eax
mov esi, ecx
mov eax, dword [edx + 0x3e38]
push 0
push 1
mov dword [esp + 0x20], 0x43800000
mov byte [eax + 0xa8], 1
lea eax, [esp + 0x20]
mov ecx, dword [edx + 0x3e38]
push eax
sub esp, 8
mov dword [esp + 0x30], 0x43800000
push str.Sprite_Constructor
call fcn.0042a650
add esp, 4
mov edx, eax
mov ecx, str.Sprite_Constructor
call fcn.0042e440
mov ecx, dword [0x4c9c24]
add esp, 0xc
mov dword [esi + 0xc4], 0xffffffff
mov dword [esi + 0xc8], 0xffffffff
mov eax, dword [ecx + 0x3e38]
push 0
push ecx
mov dword [esp], 0
mov byte [eax + 0xa8], 1
mov eax, dword [ecx + 0x3e38]
movd xmm1, dword [esi + 0x8c]
cvtdq2ps xmm1, xmm1
push 0x7fffffff
mov ebx, dword [eax + 0x260]
mov ecx, ebx
mov dword [esp + 0x48], ebx
movss xmm2, dword [eax + 0xec]
movss xmm3, dword [eax + 0xf0]
movaps xmm0, xmm2
movss dword [esp + 0x1c], xmm0
lea eax, [esp + 0x4c]
movss dword [esp + 0x24], xmm0
movaps xmm0, xmm3
movss dword [esp + 0x2c], xmm0
movss dword [esp + 0x28], xmm0
movd xmm0, dword [esi + 0x90]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [esp + 0x28]
push eax
movss dword [esp + 0x38], xmm1
addss xmm1, xmm2
movss dword [esp + 0x3c], xmm0
addss xmm0, xmm3
movss dword [esp + 0x44], xmm2
movss dword [esp + 0x40], xmm3
movss dword [esi + 0x574], xmm2
movss dword [esi + 0x578], xmm3
movss dword [esp + 0x54], xmm1
movss dword [esp + 0x58], xmm0
call fcn.0044b780
mov eax, dword [esi + 0x564]
movss xmm1, dword [0x4c1a08]
mov ecx, dword [eax + 4]
mov edi, dword [eax]
sub ecx, edi
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
je 0x4a5496
mov eax, dword [esi + 0x568]
cmp ecx, eax
jbe 0x4a5bc3
mov ecx, dword [esi + 0x56c]
lea eax, [eax + eax*8]
mov eax, dword [edi + eax*4 + 0x18]
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov ecx, dword [eax + ecx*8 + 4]
mov dword [esp + 0x50], edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x10]
mov dword [esp + 0x48], eax
cmp ecx, eax
jae 0x4a5472
movss xmm0, dword [esp + 0x10]
lea ebx, [edx + 0x10]
movss xmm2, dword [esp + 0x20]
mov dword [esp + 0x40], ebx
cmp edx, ebx
jae 0x4a543f
mov edi, edx
mov ebx, 0x10
shl edi, 8
add edi, 0x398
add edi, ecx
lea edi, [esi + edi*4]
nop
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
sar eax, 3
test eax, eax
je 0x4a540a
push ecx
mov ecx, esi
call fcn.0049f3d0
movss xmm0, dword [esp + 0x10]
addss xmm0, dword [0x4c1a08]
push 0
push ecx
mov ecx, dword [esp + 0x44]
mov dword [esp], 0
subss xmm0, dword [0x4c194c]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x28]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x30]
addss xmm0, dword [0x4c1a08]
push eax
subss xmm0, dword [0x4c194c]
movss dword [esp + 0x4c], xmm0
call fcn.0044b780
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [0x4c1a08]
addss xmm0, xmm1
add edi, 0x400
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x18], xmm0
sub ebx, 1
jne 0x4a5390
movss xmm2, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
movss xmm0, dword [esp + 0x30]
addss xmm2, xmm1
inc ecx
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x18], xmm0
mov dword [esp + 0x14], ecx
movss dword [esp + 0x20], xmm2
movss dword [esp + 0x1c], xmm2
cmp ecx, eax
jb 0x4a5372
mov ebx, dword [esp + 0x3c]
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esp + 0x20], xmm0
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esi + 0x98]
lea eax, [esp + 0x54]
mov ecx, dword [esi + 0x88]
lea edx, [esp + 0x24]
push eax
lea eax, [esp + 0x68]
movss dword [esp + 0x74], xmm0
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x6c], 0x3f800000
push eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x74], 0x3f800000
xorps xmm0, xmm0
mov dword [esp + 0x78], 0x3f800000
push eax
mov dword [esp + 0x44], 0x3f800000
mov dword [esp + 0x48], 0x3f800000
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
movups xmmword [esp + 0x64], xmm0
call fcn.00461740
add esp, 0x10
cmp byte [esi + 0x40e78], 0
je 0x4a5642
movss xmm1, dword [esp + 0x10]
movss xmm2, dword [0x4c1a08]
movss xmm0, dword [esp + 0x20]
movss xmm3, dword [0x4c194c]
mov dword [esp + 0x14], 0
nop dword [eax + eax]
addss xmm0, xmm2
xor edi, edi
movss dword [esp + 0x20], xmm0
subss xmm0, xmm3
movss dword [esp + 0x28], xmm0
nop word [eax + eax]
mov eax, dword [esi + 0xbc]
addss xmm1, xmm2
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
movaps xmm0, xmm1
sub ecx, ebx
movss dword [esp + 0x10], xmm1
mov eax, 0xe070381d
subss xmm0, xmm3
imul ecx
movss dword [esp + 0x24], xmm0
add edx, ecx
mov ecx, dword [esi + 0xc0]
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x4a5bbe
mov edx, dword [esp + 0x14]
imul eax, ecx, 0x124
add eax, edi
add eax, edx
cmp dword [ebx + eax*4], 1
jne 0x4a5603
imul eax, ecx, 0x124
push 0
push ecx
mov dword [esp], 0
add eax, edx
push dword [ebx + eax*4 + 0x410]
mov ebx, dword [esp + 0x48]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x28]
mov ecx, ebx
push eax
call fcn.0044b780
movss xmm1, dword [esp + 0x10]
movss xmm2, dword [0x4c1a08]
movss xmm3, dword [0x4c194c]
mov edx, dword [esp + 0x14]
jmp 0x4a5607
mov ebx, dword [esp + 0x3c]
add edi, 0x10
movss dword [esp + 0x18], xmm1
cmp edi, 0x100
jb 0x4a5560
movss xmm1, dword [esp + 0x30]
inc edx
movss xmm0, dword [esp + 0x20]
movss dword [esp + 0x18], xmm1
movss dword [esp + 0x1c], xmm0
mov dword [esp + 0x14], edx
cmp edx, 0x10
jb 0x4a5540
mov edi, dword [0x4c9c24]
movss xmm0, dword [esp + 0x30]
movss xmm4, dword [0x4c1a64]
mov dword [esp + 0x24], 0x43700000
mov eax, dword [edi + 0x3e38]
mov dword [esp + 0x28], 0x43700000
mov byte [eax + 0xa8], 1
mov eax, dword [edi + 0x3e38]
movss dword [eax + 0xec], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [eax + 0xf0], xmm0
mov byte [eax + 0x12d], 1
mov eax, dword [edi + 0x3e38]
mov byte [eax + 0xa8], 1
mov eax, dword [edi + 0x3e38]
cmp byte [eax + 0xab], 0
jne 0x4a5711
movss xmm0, dword [eax + 0xf0]
lea ecx, [esp + 0x24]
movss xmm2, dword [eax + 0xec]
movaps xmm1, xmm0
addss xmm1, xmm4
movss dword [esp + 0x64], xmm2
movaps xmm3, xmm2
movss dword [esp + 0x68], xmm0
addss xmm3, xmm4
movss dword [esp + 0x70], xmm1
movss xmm1, dword [0x4c1ae0]
movss dword [esp + 0x6c], xmm3
call fcn.004375f0
push 0
push 0
xor edx, edx
lea ecx, [esp + 0x6c]
call fcn.00437750
mov edi, dword [0x4c9c24]
add esp, 8
cmp byte [edi + 0x47f7], 0
mov eax, dword [edi + 0x3e38]
je 0x4a5768
cmp byte [edi + 0x47f6], 0
jne 0x4a5768
test byte [edi + 0x46b0], 4
jne 0x4a5748
mov eax, dword [edi + 0x47bc]
cmp eax, dword [edi + 0x46ac]
jne 0x4a5748
test eax, eax
jne 0x4a57de
mov byte [esi + 0x40e78], 1
call fcn.0042e650
mov ecx, dword [esp + 0x74]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004a7a88
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [edi + 0x46b4]
test cl, 1
je 0x4a5748
cmp dword [edi + 0x3e3c], eax
je 0x4a577f
test cl, cl
jns 0x4a5748
mov ecx, dword [edi + 0x3e84]
test ecx, ecx
je 0x4a579f
cmp ecx, dword [edi + 0x46ac]
je 0x4a579f
cmp byte [edi + 0x3e91], 0
jne 0x4a579f
cmp ecx, dword [eax + 0x6c]
jne 0x4a5748
xor edx, edx
mov ecx, eax
call fcn.0042abc0
test al, al
jne 0x4a57b8
test dword [edi + 0x46b0], 0x100
je 0x4a5748
test byte [edi + 0x46b0], 4
jne 0x4a5748
mov ecx, dword [edi + 0x3e38]
mov eax, dword [edi + 0x46ac]
cmp eax, dword [ecx + 0x6c]
jne 0x4a57de
cmp byte [ecx + 0xa8], dl
jne 0x4a5748
mov ecx, 0x20f
call fcn.00434b20
cmp byte [eax], 0
je 0x4a5804
xor edx, edx
mov ecx, 0x20f
call fcn.00437000
test al, al
je 0x4a5804
mov byte [esi + 0x40e78], 0
mov ecx, 0x20f
call fcn.00434b20
xorps xmm0, xmm0
comiss xmm0, dword [eax + 8]
ja 0x4a5833
cmp byte [eax], 0
jne 0x4a5833
xor edx, edx
mov ecx, 0x20f
call fcn.00437000
test al, al
je 0x4a5833
mov byte [esi + 0x40e78], 1
mov eax, dword [0x4c9c24]
movss xmm3, dword [esp + 0x30]
movss xmm2, dword [0x4c1a08]
movss xmm0, dword [eax + 0xdb8]
movss xmm1, dword [eax + 0xdbc]
subss xmm0, xmm3
subss xmm1, dword [esp + 0x2c]
mov dword [eax + 0x493c], 7
divss xmm0, xmm2
divss xmm1, xmm2
cvttss2si ecx, xmm0
cvttss2si eax, xmm1
mov dword [esi + 0xc4], ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov dword [esi + 0xc8], eax
mov eax, dword [esp + 0x4c]
movss dword [eax], xmm0
movd xmm0, dword [esi + 0xc8]
cvtdq2ps xmm0, xmm0
movss dword [eax + 4], xmm0
cmp byte [esi + 0xe5e], 0
movd xmm0, dword [esi + 0xc4]
movd xmm1, dword [esi + 0xc8]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm2
mulss xmm1, xmm2
addss xmm0, xmm3
addss xmm1, dword [esp + 0x2c]
movss dword [esp + 0x40], xmm0
movss dword [esp + 0x18], xmm0
addss xmm0, xmm2
movss dword [esp + 0x48], xmm1
movss dword [esp + 0x1c], xmm1
movss dword [esp + 0x2c], xmm0
movss dword [esp + 0x24], xmm0
movaps xmm0, xmm1
addss xmm0, xmm2
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x28], xmm0
jne 0x4a5919
mov eax, dword [esi + 0xb0]
jmp 0x4a5962
mov eax, dword [esi + 0xbc]
mov edi, dword [esi + 0xc0]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, 0xe070381d
sub ecx, edx
mov dword [esp + 0x4c], edx
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x4a5bbe
mov ecx, dword [esp + 0x4c]
imul eax, edi, 0x124
add eax, dword [esi + 0xc8]
mov eax, dword [ecx + eax*4 + 0x410]
push 0
push ecx
mov dword [esp], 0
mov ecx, ebx
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0044b780
test byte [ebx + 0x24], 1
lea eax, [esp + 0x24]
movss xmm0, dword [0x4c18fc]
xorps xmm3, xmm3
movss xmm2, dword [esp + 0x40]
mov ecx, ebx
movss xmm4, dword [esp + 0x48]
addss xmm2, xmm0
movss xmm1, dword [esp + 0x2c]
addss xmm4, xmm0
push 0
push eax
lea eax, [esp + 0x3c]
movss dword [esp + 0x3c], xmm2
movss dword [esp + 0x40], xmm4
push eax
je 0x4a59d9
subss xmm1, xmm0
movss dword [esp + 0x30], xmm1
movss xmm1, dword [esp + 0x20]
subss xmm1, xmm0
jmp 0x4a59f5
subss xmm1, dword [0x4c18f8]
movss dword [esp + 0x30], xmm1
movss xmm1, dword [esp + 0x20]
subss xmm1, dword [0x4c18f8]
movss dword [esp + 0x34], xmm1
call fcn.0044b060
push ecx
mov dword [esp], 0x3f800000
mov ecx, ebx
push 1
push 0xff0000ff
push dword [ebx + 0x54]
push dword [ebx + 0x5c]
call fcn.00449720
mov eax, dword [0x4c9c24]
mov dword [ebx + 0x54], 0
cmp byte [eax + 0xdc0], 0
je 0x4a5b44
xor edx, edx
mov ecx, 0x281
call fcn.00437000
test al, al
je 0x4a5b44
cmp dword [esi + 0xb0], 0
je 0x4a5b44
mov eax, dword [esi + 0xbc]
mov edi, dword [esi + 0xc0]
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
sub ecx, ebx
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x4a5bbe
mov eax, dword [esi + 0xc4]
imul ecx, edi, 0x124
shl eax, 4
add ecx, eax
add ecx, dword [esi + 0xc8]
mov dword [ebx + ecx*4], 1
cmp byte [esi + 0xe5e], 0
jne 0x4a5b3d
mov eax, dword [esi + 0xbc]
mov edi, dword [esi + 0xc0]
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
sub ecx, ebx
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x4a5bbe
mov eax, dword [esi + 0xb0]
imul ecx, edi, 0x124
add ecx, dword [esi + 0xc8]
mov dword [ebx + ecx*4 + 0x410], eax
mov eax, dword [esi + 0xbc]
mov edi, dword [esi + 0xc0]
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
sub ecx, ebx
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x4a5bbe
mov eax, dword [esi + 0xb4]
imul ecx, edi, 0x124
add ecx, dword [esi + 0xc8]
mov dword [ebx + ecx*4 + 0x450], eax
mov byte [esi + 0x80], 1
mov eax, dword [0x4c9c24]
cmp byte [eax + 0xdc1], 0
je 0x4a574f
xor edx, edx
mov ecx, 0x282
call fcn.00437000
test al, al
je 0x4a574f
mov ecx, dword [esi + 0xbc]
mov eax, 0xe070381d
mov edi, dword [esi + 0xc0]
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x4a5bbe
mov eax, dword [esi + 0xc4]
imul ecx, edi, 0x124
shl eax, 4
add ecx, eax
add ecx, dword [esi + 0xc8]
mov dword [ebx + ecx*4], 0
mov byte [esi + 0x80], 1
jmp 0x4a574f
call fcn.00499cc0
call fcn.00499cc0
int3