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

Disassembly:
push 0xd0
mov eax, 0x100afa1a
call fcn.1008a8a3
mov esi, dword [0x100e6f58]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x24], esi
mov eax, dword [esi + 0x3e40]
mov byte [eax + 0xac], cl
mov edi, dword [esi + 0x3e40]
mov dword [ebp - 0x18], edi
cmp byte [edi + 0xaf], 0
je 0x100489df
xor al, al
jmp 0x1004932a
mov eax, dword [ebp + 0x14]
and eax, 0x3000000
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x54]
push eax
call fcn.10006afd
cmp dword [ebp - 0x1c], 0
xorps xmm1, xmm1
movss xmm2, dword [0x100b4c90]
pop ecx
je 0x10048a0e
movss xmm1, dword [ebp - 0x50]
maxss xmm1, xmm2
movss xmm0, dword [ebp - 0x54]
mov eax, dword [ebp + 0x18]
maxss xmm0, xmm2
push ecx
push ecx
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x5c]
push eax
call fcn.1000f0aa
movss xmm1, dword [ebp - 0x5c]
add esp, 0x14
cmp dword [ebp - 0x1c], 0
addss xmm1, dword [edi + 0xf0]
movss xmm0, dword [ebp - 0x58]
addss xmm0, dword [edi + 0xf4]
mov eax, dword [edi + 0xf0]
mov ecx, dword [edi + 0xf4]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
movss dword [ebp - 0x44], xmm1
movss dword [ebp - 0x40], xmm0
je 0x10048abc
lea eax, [ebp - 0x4c]
push 0
push eax
call fcn.1000f000
pop ecx
pop ecx
test al, al
je 0x10048abc
movss xmm0, dword [ebp - 0x44]
lea eax, [ebp - 0x3c]
subss xmm0, dword [ebp - 0x4c]
push ecx
mov dword [esp], 0xbf800000
push eax
movss dword [ebp - 0x3c], xmm0
movss xmm0, dword [ebp - 0x40]
subss xmm0, dword [ebp - 0x48]
movss dword [ebp - 0x38], xmm0
call fcn.1000ec1d
pop ecx
xor al, al
jmp 0x10049329
push dword [ebp + 0xc]
lea ecx, [esi + 0x49f8]
call fcn.1004d991
mov edi, eax
mov ecx, 0x1e8
mov dword [ebp - 0x30], edi
mov eax, dword [edi + 4]
mov dword [ebp - 0x38], eax
mov eax, edi
sub eax, dword [esi + 0x4a00]
cdq
idiv ecx
mov ecx, dword [esi + 0x49e8]
inc ecx
mov dword [ebp - 0x34], eax
mov dword [esi + 0x49e8], ecx
cmp ecx, dword [esi + 0x49ec]
jle 0x10048b2d
lea ecx, [ebp - 0xd4]
call fcn.1004d7f9
and dword [ebp - 4], 0
lea ecx, [esi + 0x49ec]
push eax
push dword [esi + 0x49e8]
call fcn.1004dde7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc4]
call fcn.10016390
imul ecx, dword [esi + 0x49e8], 0x68
mov eax, dword [esi + 0x49f4]
push dword [ebp - 0x18]
add eax, 0xffffff98
push dword [ebp + 0x14]
add ecx, eax
mov eax, dword [ebp - 0x34]
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x28], ecx
mov dword [ecx], eax
xor ecx, ecx
mov eax, dword [edi + 0xc]
inc ecx
add eax, 0x10
mov dword [edi + 0x160], eax
and dword [eax], 0
mov dword [eax + 4], ecx
mov eax, dword [ebp + 0x14]
and eax, 0xe000
neg eax
sbb al, al
inc al
mov byte [edi + 0x1e2], al
call fcn.1004da71
pop ecx
pop ecx
mov ecx, dword [edi + 0x3c]
mov dword [ebp - 0x14], eax
cmp ecx, dword [esi + 0x3de0]
je 0x10048b92
xor edx, edx
jmp 0x10048b97
movsx edx, word [edi + 0x4c]
inc edx
mov ecx, dword [ebp + 0xc]
movss xmm0, dword [ebp + 0x1c]
mov dword [edi + 4], eax
mov dword [edi], ecx
mov eax, dword [esi + 0x3de0]
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp - 0x28]
mov dword [edi + 0x3c], eax
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x150], eax
mov dword [edi + 0x14c], eax
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x40], eax
mov byte [edi + 0x1d6], 0
movss dword [edi + 0xa0], xmm0
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esi + 8], eax
mov eax, esi
mov dword [ebp - 0x10], edx
mov dword [eax + 0xc], ecx
mov word [edi + 0x4c], dx
test edx, edx
jle 0x10048c2f
lea ecx, [edi + 0x174]
cmp dword [ecx], edx
jge 0x10048c12
and dword [ebp - 0x6c], 0
lea eax, [ebp - 0x6c]
and dword [ebp - 0x60], 0
and dword [ebp - 0x64], 0
and dword [ebp - 0x68], 0
push eax
call fcn.1001f0cb
push dword [ebp + 0xc]
push 0
push str.Instances
call fcn.1000eb9d
push eax
push dword [ebp - 0x10]
call fcn.1000ebe4
add esp, 0x14
jmp 0x10048c32
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x2c], eax
movsx eax, word [edi + 0x4c]
push eax
push edi
call fcn.1001cfec
cmp dword [ebp - 0x1c], 0
mov esi, dword [ebp - 0x24]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
push 0x44
mov dword [eax], ecx
pop edx
je 0x10048dcc
mov ecx, dword [ebp - 0x14]
mov eax, ecx
movss xmm1, dword [0x100b4d24]
and eax, 0x3000000
movaps xmm3, xmm1
movaps xmm2, xmm1
cmp eax, 0x1000000
jne 0x10048c7e
movss xmm2, dword [0x100c992c]
test ecx, 0x1000000
je 0x10048c9e
movss xmm4, dword [ebp + 0x1c]
xorps xmm0, xmm0
comiss xmm4, xmm0
jbe 0x10048c9e
ucomiss xmm4, xmm1
movaps xmm3, xmm4
lahf
test dl, ah
jp 0x10048ca6
ucomiss xmm2, xmm1
lahf
test dl, ah
jnp 0x10048cd0
ucomiss xmm2, xmm1
lahf
test dl, ah
jp 0x10048cb1
xorps xmm2, xmm2
ucomiss xmm3, xmm1
lahf
test dl, ah
jp 0x10048cbc
xorps xmm3, xmm3
lea eax, [ebp - 0x20]
movss dword [ebp - 0x20], xmm3
push eax
movss dword [ebp - 0x1c], xmm2
call fcn.1000691a
pop ecx
test dword [ebp - 0x38], 0x3000000
jne 0x10048ceb
and dword [ebp - 0x20], 0
lea eax, [ebp - 0x20]
and dword [ebp - 0x1c], 0
push eax
call fcn.1000698b
pop ecx
movss xmm0, dword [ebp - 0x44]
subss xmm0, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x14]
shr eax, 0xd
and eax, 0x800
push eax
movss dword [ebp - 0x20], xmm0
lea eax, [ebp - 0x20]
movss xmm0, dword [ebp - 0x40]
subss xmm0, dword [ebp - 0x48]
push 0
push eax
push dword [ebp - 0x2c]
push dword [ebp + 8]
movss dword [ebp - 0x1c], xmm0
call fcn.1000f57f
mov eax, dword [esi + 0x3e40]
add esp, 0x14
mov dword [edi + 0x150], eax
add edi, 0xdc
cmp dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x30]
lea esi, [eax + 0x1f0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss xmm2, dword [eax + 0x14]
lea esi, [eax + 0x1d0]
movss xmm3, dword [eax + 0x18]
lea edi, [ecx + 0xcc]
movss xmm0, dword [eax + 0x1c]
movss xmm1, dword [eax + 0x20]
movss dword [ecx + 0xbc], xmm2
addss xmm2, xmm0
movss dword [ecx + 0xc0], xmm3
addss xmm3, xmm1
movss dword [ecx + 0xc4], xmm2
movss dword [ecx + 0xc8], xmm3
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jne 0x10048dad
mov al, byte [ecx + 0x1e3]
mov byte [ecx + 0x1e4], al
mov byte [ecx + 0x1e3], 0
mov eax, dword [ecx + 0x150]
xorps xmm1, xmm1
movss xmm0, dword [eax + 0x84]
comiss xmm0, xmm1
seta al
or byte [ecx + 0x1e3], al
jmp 0x10048df6
lea eax, [edi + 0xcc]
mov ecx, dword [ebp - 0x30]
mov edi, eax
lea esi, [ebp - 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
lea edi, [ecx + 0xbc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
lea edi, [ecx + 0xdc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push dword [ebp + 0xc]
call fcn.1000eb64
cmp dword [ebp - 0x10], 0
pop ecx
jle 0x10048e0e
push dword [ebp - 0x2c]
call fcn.1000eb64
pop ecx
mov ecx, dword [ebp - 0x30]
xorps xmm1, xmm1
movss xmm4, dword [0x100b4c90]
push 1
mov edx, dword [ecx + 0x150]
lea edi, [ecx + 0x12c]
mov dword [ebp - 0x10], edx
mov eax, dword [edx + 0x134]
lea esi, [edx + 0x210]
mov dword [ecx + 0x84], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov al, byte [edx + 0xaf]
lea esi, [edx + 0x1f0]
mov byte [ecx + 0x1e6], al
mov eax, dword [ebp - 0x28]
lea edi, [eax + 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x34]
lea esi, [edx + 0x200]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x18]
mov eax, dword [edi + 0x138]
mov dword [esi + 0x5c], eax
mov eax, dword [edx + 0x120]
mov ecx, dword [edx + 0x124]
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], ecx
mov eax, dword [edx + 0x118]
mov ecx, dword [edx + 0x11c]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], ecx
mov eax, dword [edx + 0x108]
mov ecx, dword [edx + 0x10c]
mov dword [esi + 0x54], eax
mov dword [esi + 0x58], ecx
mov eax, dword [edi + 0x1a0]
mov dword [esi + 0x60], eax
mov eax, dword [edi + 0x1a8]
mov dword [esi + 0x64], eax
mov eax, dword [ebp - 0x14]
mov ecx, eax
movups xmmword [edx + 0x118], xmm1
mov edx, eax
shr eax, 0xa
and al, 1
test ecx, 0x200000
movzx eax, al
pop ecx
cmovne eax, ecx
xor ecx, ecx
test edx, 0x400000
movzx eax, al
cmovne eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, edx
mov ecx, eax
xor edx, edx
shr ecx, 0x17
inc edx
not cl
and cl, dl
and eax, 0x200
je 0x10048f0e
movaps xmm5, xmm4
jmp 0x10048f11
xorps xmm5, xmm5
test cl, cl
je 0x1004901f
test eax, eax
jne 0x1004901f
mov edx, dword [ebp - 0x24]
movss xmm2, dword [edx + 0x37fc]
xorps xmm3, xmm3
test dword [ebp - 0x14], 0x400
movaps xmm0, xmm2
mov ecx, dword [ebp - 0x30]
addss xmm0, xmm5
movss dword [ecx + 0x9c], xmm2
movss dword [ecx + 0x98], xmm0
movss dword [ecx + 0x90], xmm3
mov eax, dword [edx + 0x3800]
mov dword [ecx + 0x94], eax
jne 0x10048f69
xorps xmm4, xmm4
cmp byte [ebp - 0x1c], 0
je 0x10048f77
movss xmm1, dword [edx + 0x37fc]
or dword [ecx + 0x48], 0xffffffff
addss xmm1, xmm4
or dword [ecx + 0x44], 0xffffffff
xor eax, eax
and dword [ecx + 0x68], 0
mov edx, dword [ebp - 0x10]
mov word [ecx + 0x66], ax
lea eax, [ecx + 0xdc]
subss xmm1, xmm3
lea esi, [edx + 0x210]
movss dword [ecx + 0x8c], xmm1
add ecx, 0xec
cmp edx, edi
mov edi, ecx
cmove esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss xmm1, dword [eax]
movss xmm0, dword [ecx + 4]
maxss xmm0, dword [eax + 4]
maxss xmm1, dword [ecx]
mov esi, dword [ebp - 0x30]
movss dword [ecx + 4], xmm0
movss dword [ecx], xmm1
movss xmm1, dword [ecx + 8]
movss xmm0, dword [ecx + 0xc]
minss xmm1, dword [eax + 8]
minss xmm0, dword [eax + 0xc]
lea eax, [esi + 0x12c]
push eax
movss dword [ecx + 8], xmm1
movss dword [ecx + 0xc], xmm0
call fcn.1004d8b8
test dword [ebp - 0x14], 0x20000
mov eax, dword [ebp - 0x10]
je 0x10049047
movss xmm0, dword [eax + 0x1fc]
minss xmm0, dword [esi + 0xf8]
jmp 0x1004904f
mov edx, dword [ebp - 0x24]
xorps xmm2, xmm2
movss dword [ebp - 0x2c], xmm2
test cl, cl
je 0x10048f2c
test eax, eax
je 0x10048f2c
movss xmm3, dword [edx + 0x37fc]
jmp 0x10048f2f
movss xmm0, dword [eax + 0x21c]
and dword [esi + 0x5c], 0
xor eax, eax
mov dword [esi + 0x1c6], eax
mov dword [esi + 0x1ca], eax
inc eax
push ecx
movss dword [esi + 0xf8], xmm0
movss xmm0, dword [esi + 0xe0]
mov byte [esi + 0x1e1], al
xor eax, eax
mov dword [esp], 0x3f800000
push 0x2b
movss dword [esi + 0x54], xmm0
movss dword [esi + 0x50], xmm0
mov word [esi + 0x1aa], ax
call fcn.10007296
add esp, 4
mov dword [esi + 0x74], eax
mov dword [esp], 0x3f800000
push 0x2c
call fcn.10007296
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x34]
mov dword [esi + 0x78], eax
mov eax, dword [ebp - 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
mov dword [edi + 0x49e4], esi
mov dword [eax + 0x194], edx
cmp ecx, eax
je 0x100490d5
mov dword [ecx + 0x194], edx
test byte [ebp - 0x38], 2
je 0x100490ea
test byte [ebp - 0x14], 2
jne 0x100490ea
xor eax, eax
inc eax
mov byte [esi + 0x1e0], al
lea ecx, [edi + 0x4a18]
cmp edx, dword [ecx]
jl 0x1004910b
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0xbf800000
push eax
lea eax, [edx + 1]
push eax
call fcn.1003ee8e
mov edx, dword [ebp - 0x34]
movsd xmm0, qword [edi + 0x3dd8]
mov eax, dword [edi + 0x4a20]
cvtpd2ps xmm0, xmm0
push 0x70
pop ecx
movss dword [eax + edx*4], xmm0
movsd xmm0, qword [edi + 0x3dd8]
mov eax, dword [ebp - 0x28]
cvtpd2ps xmm0, xmm0
movss dword [eax + 4], xmm0
xor eax, eax
mov byte [esi + 0x1e5], al
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x14]
sub eax, dword [esi + 0x10]
cdq
idiv ecx
mov ecx, eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], ecx
test ecx, ecx
je 0x10049170
cmp ecx, eax
je 0x10049170
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x38], ecx
mov ecx, dword [esi + 8]
and dword [esi + 8], 0
mov dword [ebp - 0x1c], ecx
cmp dword [esi + 8], 0
jne 0x1004918e
push eax
push esi
call fcn.10049330
xor eax, eax
inc eax
pop ecx
pop ecx
mov byte [esi + 0x1dc], al
mov byte [esi + 0x1d8], al
cmp byte [esi + 0x1df], 0
je 0x1004919e
push esi
call fcn.1004c802
pop ecx
cmp byte [esi + 0x1d8], 0
je 0x1004928d
or ecx, 0xffffffff
xor eax, eax
inc eax
mov dword [esi + 0x38], ecx
mov byte [esi + 0x1d9], al
xor eax, eax
mov word [esi + 0x4e], cx
mov word [esi + 0x1c4], cx
mov word [esi + 0x1b4], cx
mov word [esi + 0x1b2], cx
mov word [esi + 0x1b8], cx
mov word [esi + 0x1b0], cx
mov word [esi + 0x1ae], cx
mov word [esi + 0x1ac], cx
mov dword [ebp - 0x18], eax
cmp dword [ebp + 0x10], eax
jle 0x1004928d
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov edx, dword [esi + 0x10]
mov esi, dword [ebp - 0x38]
add edx, ecx
mov dword [ebp - 0x28], edx
test esi, esi
je 0x10049221
cmp eax, dword [ebp - 0x2c]
jge 0x10049221
add esi, ecx
mov edi, edx
push 0x1c
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0x1004925e
movss xmm0, dword [edx + 0x14]
lea ecx, [ebp - 0xdc]
movss dword [ebp - 0x14], xmm0
call fcn.1004d779
mov edx, dword [ebp - 0x28]
mov esi, eax
movss xmm0, dword [ebp - 0x14]
xor eax, eax
inc eax
mov edi, edx
push 0x1c
pop ecx
rep movsd dword es:[edi], dword [esi]
mov byte [edx + 0x69], al
mov byte [edx + 0x64], al
mov byte [edx + 0x63], al
mov byte [edx + 0x62], al
mov eax, dword [ebp - 0x18]
movss dword [edx + 0x14], xmm0
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x18]
movzx ecx, ax
mov eax, dword [esi + 0x18]
mov word [eax + edi*2], cx
mov eax, edi
mov word [edx + 0x52], cx
inc eax
mov ecx, dword [ebp - 0x34]
add ecx, 0x70
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x34], ecx
cmp eax, dword [ebp + 0x10]
jl 0x10049202
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x1004929b
push eax
call fcn.1000a000
pop ecx
cmp byte [esi + 0x1dc], 0
je 0x100492ab
push esi
call fcn.1004c49d
pop ecx
movss xmm0, dword [esi + 0xb8]
xorps xmm1, xmm1
movss xmm2, dword [edi + 0x3bd0]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100492fa
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x100492fa
mov ecx, dword [ebp + 0x10]
movaps xmm1, xmm2
divss xmm1, xmm0
test ecx, ecx
jle 0x100492fa
xor edx, edx
mov eax, dword [esi + 0x10]
movaps xmm0, xmm1
lea edx, [edx + 0x70]
mulss xmm0, dword [eax + edx - 0x60]
movss dword [eax + edx - 0x60], xmm0
sub ecx, 1
jne 0x100492e0
mov eax, dword [ebp - 0x10]
xor ecx, ecx
inc ecx
movss dword [esi + 0xb8], xmm2
mov byte [eax + 0xaf], cl
lea ecx, [esi + 0x154]
cmp dword [ecx], 0
jle 0x10049320
push 0
call fcn.1001f588
push esi
call fcn.10049420
xor eax, eax
inc eax
pop ecx
call fcn.1008a880
ret