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

Disassembly:
push 0xd0
mov eax, 0x100bac1e
call fcn.1009568a
mov esi, dword [0x10114fd8]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x30], esi
mov eax, dword [esi + 0x3e40]
mov byte [eax + 0xac], cl
mov edi, dword [esi + 0x3e40]
mov dword [ebp - 0x14], edi
cmp byte [edi + 0xaf], 0
je 0x1004c781
xor al, al
jmp 0x1004d0bd
mov eax, dword [ebp + 0x14]
and eax, 0x3000000
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x64]
push eax
call fcn.1000aebe
cmp dword [ebp - 0x1c], 0
movss xmm2, dword [0x100bd4f4]
pop ecx
je 0x1004c7af
movss xmm1, dword [ebp - 0x60]
maxss xmm1, xmm2
jmp 0x1004c7b2
xorps xmm1, xmm1
movss xmm0, dword [ebp - 0x64]
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 - 0x6c]
push eax
call fcn.10013524
movss xmm1, dword [ebp - 0x6c]
add esp, 0x14
cmp dword [ebp - 0x1c], 0
addss xmm1, dword [edi + 0xf0]
movss xmm0, dword [ebp - 0x68]
addss xmm0, dword [edi + 0xf4]
mov eax, dword [edi + 0xf0]
mov ecx, dword [edi + 0xf4]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
movss dword [ebp - 0x54], xmm1
movss dword [ebp - 0x50], xmm0
je 0x1004c860
lea eax, [ebp - 0x5c]
push 0
push eax
call fcn.1001347a
pop ecx
pop ecx
test al, al
je 0x1004c860
movss xmm0, dword [ebp - 0x54]
lea eax, [ebp - 0x40]
subss xmm0, dword [ebp - 0x5c]
push ecx
mov dword [esp], 0xbf800000
push eax
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x50]
subss xmm0, dword [ebp - 0x58]
movss dword [ebp - 0x3c], xmm0
call fcn.10013097
pop ecx
xor al, al
jmp 0x1004d0bc
push dword [ebp + 0xc]
lea ecx, [esi + 0x49f8]
call fcn.100516f5
mov edi, eax
mov ecx, 0x1e8
mov dword [ebp - 0x24], edi
mov eax, dword [edi + 4]
mov dword [ebp - 0x34], eax
mov eax, edi
sub eax, dword [esi + 0x4a00]
cdq
idiv ecx
mov ecx, dword [esi + 0x49e8]
inc ecx
mov dword [ebp - 0x28], eax
mov dword [esi + 0x49e8], ecx
cmp ecx, dword [esi + 0x49ec]
jle 0x1004c8d1
lea ecx, [ebp - 0xd4]
call fcn.1005155d
and dword [ebp - 4], 0
lea ecx, [esi + 0x49ec]
push eax
push dword [esi + 0x49e8]
call fcn.10051b4c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc4]
call fcn.1001a82c
imul ecx, dword [esi + 0x49e8], 0x68
mov eax, dword [esi + 0x49f4]
push dword [ebp - 0x14]
add eax, 0xffffff98
push dword [ebp + 0x14]
add ecx, eax
mov eax, dword [ebp - 0x28]
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x2c], 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.100517d5
pop ecx
pop ecx
mov ecx, dword [edi + 0x3c]
mov dword [ebp - 0x20], eax
cmp ecx, dword [esi + 0x3de0]
je 0x1004c936
xor edx, edx
jmp 0x1004c93b
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 - 0x2c]
mov dword [edi + 0x3c], eax
mov eax, dword [ebp - 0x14]
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 0x1004c9d3
lea ecx, [edi + 0x174]
cmp dword [ecx], edx
jge 0x1004c9b6
and dword [ebp - 0x48], 0
lea eax, [ebp - 0x48]
and dword [ebp - 0x3c], 0
and dword [ebp - 0x40], 0
and dword [ebp - 0x44], 0
push eax
call fcn.10023650
push dword [ebp + 0xc]
push 0
push str.Instances
call fcn.10013017
push eax
push dword [ebp - 0x10]
call fcn.1001305e
add esp, 0x14
jmp 0x1004c9d6
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x18], eax
movsx eax, word [edi + 0x4c]
push eax
push edi
call fcn.1002156f
cmp dword [ebp - 0x1c], 0
mov esi, dword [ebp - 0x30]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x18]
push 0x44
mov dword [eax], ecx
pop edx
je 0x1004cb64
mov ecx, dword [ebp - 0x20]
mov eax, ecx
movss xmm1, dword [0x100c0f80]
and eax, 0x3000000
movaps xmm3, xmm1
movaps xmm2, xmm1
cmp eax, 0x1000000
jne 0x1004ca22
movss xmm2, dword [0x100d61ac]
test ecx, 0x1000000
je 0x1004ca42
movss xmm4, dword [ebp + 0x1c]
xorps xmm0, xmm0
comiss xmm4, xmm0
jbe 0x1004ca42
ucomiss xmm4, xmm1
movaps xmm3, xmm4
lahf
test dl, ah
jp 0x1004ca4a
ucomiss xmm2, xmm1
lahf
test dl, ah
jnp 0x1004ca74
ucomiss xmm2, xmm1
lahf
test dl, ah
jp 0x1004ca55
xorps xmm2, xmm2
ucomiss xmm3, xmm1
lahf
test dl, ah
jp 0x1004ca60
xorps xmm3, xmm3
lea eax, [ebp - 0x40]
movss dword [ebp - 0x40], xmm3
push eax
movss dword [ebp - 0x3c], xmm2
call fcn.1000acdb
pop ecx
test dword [ebp - 0x34], 0x3000000
jne 0x1004ca8f
and dword [ebp - 0x40], 0
lea eax, [ebp - 0x40]
and dword [ebp - 0x3c], 0
push eax
call fcn.1000ad4c
pop ecx
movss xmm0, dword [ebp - 0x54]
subss xmm0, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x20]
shr eax, 0xd
and eax, 0x800
push eax
movss dword [ebp - 0x40], xmm0
lea eax, [ebp - 0x40]
movss xmm0, dword [ebp - 0x50]
subss xmm0, dword [ebp - 0x58]
push 0
push eax
push dword [ebp - 0x18]
push dword [ebp + 8]
movss dword [ebp - 0x3c], xmm0
call fcn.100139ff
mov edx, dword [esi + 0x3e40]
add esp, 0x14
mov dword [edi + 0x150], edx
add edi, 0xdc
cmp dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x24]
lea esi, [edx + 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 xmm1, dword [edx + 0x14]
lea edi, [ecx + 0xbc]
movss xmm0, dword [edx + 0x18]
lea esi, [ebp - 0x48]
movss dword [ebp - 0x48], xmm1
addss xmm1, dword [edx + 0x1c]
movss dword [ebp - 0x44], xmm0
addss xmm0, dword [edx + 0x20]
movss dword [ebp - 0x40], xmm1
movss dword [ebp - 0x3c], xmm0
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 esi, [edx + 0x1d0]
lea edi, [ecx + 0xcc]
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 0x1004cb4a
mov al, byte [ecx + 0x1e3]
mov byte [ecx + 0x1e4], al
mov byte [ecx + 0x1e3], 0
movss xmm0, dword [edx + 0x84]
comiss xmm0, dword [0x100bd4e8]
seta al
or byte [ecx + 0x1e3], al
jmp 0x1004cb8e
lea eax, [edi + 0xcc]
mov ecx, dword [ebp - 0x24]
mov edi, eax
lea esi, [ebp - 0x5c]
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.10012fde
cmp dword [ebp - 0x10], 0
pop ecx
jle 0x1004cba6
push dword [ebp - 0x18]
call fcn.10012fde
pop ecx
mov ecx, dword [ebp - 0x24]
xorps xmm1, xmm1
movss xmm4, dword [0x100bd4f4]
push 1
mov edx, dword [ecx + 0x150]
lea edi, [ecx + 0x12c]
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x10], edx
mov eax, dword [edx + 0x134]
mov dword [ecx + 0x84], eax
lea eax, [edx + 0x210]
mov esi, eax
mov dword [ebp - 0x4c], 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 - 0x2c]
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 edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x138]
mov dword [edi + 0x5c], eax
mov eax, dword [edx + 0x120]
mov ecx, dword [edx + 0x124]
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], ecx
mov eax, dword [edx + 0x118]
mov ecx, dword [edx + 0x11c]
mov dword [edi + 0x4c], eax
mov dword [edi + 0x50], ecx
mov eax, dword [edx + 0x108]
mov ecx, dword [edx + 0x10c]
mov dword [edi + 0x54], eax
mov dword [edi + 0x58], ecx
mov eax, dword [esi + 0x1a0]
mov dword [edi + 0x60], eax
mov eax, dword [esi + 0x1a8]
mov dword [edi + 0x64], eax
mov eax, dword [ebp - 0x20]
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 - 0x18], eax
mov eax, edx
mov ecx, eax
xor edx, edx
shr ecx, 0x17
inc edx
not cl
and cl, dl
and eax, 0x200
je 0x1004ccae
movaps xmm5, xmm4
jmp 0x1004ccb1
xorps xmm5, xmm5
test cl, cl
je 0x1004cdb4
test eax, eax
jne 0x1004cdb4
mov edx, dword [ebp - 0x30]
lea edi, [edx + 0x37fc]
movss xmm2, dword [edi]
xorps xmm3, xmm3
test dword [ebp - 0x20], 0x400
movaps xmm0, xmm2
mov ecx, dword [ebp - 0x24]
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 0x1004cd0b
xorps xmm4, xmm4
cmp byte [ebp - 0x18], 0
je 0x1004cd15
movss xmm1, dword [edi]
or dword [ecx + 0x48], 0xffffffff
addss xmm1, xmm4
or dword [ecx + 0x44], 0xffffffff
xor eax, eax
and dword [ecx + 0x68], 0
mov word [ecx + 0x66], ax
lea eax, [ecx + 0xdc]
push dword [ebp - 0x38]
subss xmm1, xmm3
movss dword [ecx + 0x8c], xmm1
add ecx, 0xec
cmp dword [ebp - 0x10], esi
mov edi, ecx
mov esi, dword [ebp - 0x4c]
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 xmm1, dword [ecx]
maxss xmm0, dword [eax + 4]
movss dword [ecx], xmm1
movss dword [ecx + 4], xmm0
movss xmm1, dword [ecx + 8]
movss xmm0, dword [ecx + 0xc]
minss xmm1, dword [eax + 8]
minss xmm0, dword [eax + 0xc]
movss dword [ecx + 8], xmm1
movss dword [ecx + 0xc], xmm0
call fcn.1005161c
test dword [ebp - 0x20], 0x20000
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x24]
je 0x1004cdd9
movss xmm0, dword [eax + 0x1fc]
minss xmm0, dword [esi + 0xf8]
jmp 0x1004cde1
mov edx, dword [ebp - 0x30]
xorps xmm2, xmm2
lea edi, [edx + 0x37fc]
test cl, cl
je 0x1004ccce
test eax, eax
je 0x1004ccce
movss xmm3, dword [edi]
jmp 0x1004ccd1
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.1000b657
add esp, 4
mov dword [esi + 0x74], eax
mov dword [esp], 0x3f800000
push 0x2c
call fcn.1000b657
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
mov dword [esi + 0x78], eax
mov eax, dword [ebp - 0x14]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
mov dword [edi + 0x49e4], esi
mov dword [eax + 0x194], edx
cmp ecx, eax
je 0x1004ce67
mov dword [ecx + 0x194], edx
test byte [ebp - 0x34], 2
je 0x1004ce7c
test byte [ebp - 0x20], 2
jne 0x1004ce7c
xor eax, eax
inc eax
mov byte [esi + 0x1e0], al
lea ecx, [edi + 0x4a18]
cmp edx, dword [ecx]
jl 0x1004ce9d
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0xbf800000
push eax
lea eax, [edx + 1]
push eax
call fcn.10042c95
mov edx, dword [ebp - 0x28]
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 - 0x2c]
cvtpd2ps xmm0, xmm0
movss dword [eax + 4], xmm0
xor eax, eax
mov byte [esi + 0x1e5], al
mov dword [ebp - 0x34], 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 - 0x38], ecx
test ecx, ecx
je 0x1004cf02
cmp ecx, eax
je 0x1004cf02
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x34], ecx
mov ecx, dword [esi + 8]
and dword [esi + 8], 0
mov dword [ebp - 0x1c], ecx
cmp dword [esi + 8], 0
jne 0x1004cf20
push eax
push esi
call fcn.1004d0c3
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 0x1004cf30
push esi
call fcn.1005059c
pop ecx
cmp byte [esi + 0x1d8], 0
je 0x1004d01f
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 - 0x14], eax
cmp dword [ebp + 0x10], eax
jle 0x1004d01f
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov edx, dword [esi + 0x10]
mov esi, dword [ebp - 0x34]
add edx, ecx
mov dword [ebp - 0x4c], edx
test esi, esi
je 0x1004cfb3
cmp eax, dword [ebp - 0x38]
jge 0x1004cfb3
add esi, ecx
mov edi, edx
push 0x1c
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0x1004cff0
movss xmm0, dword [edx + 0x14]
lea ecx, [ebp - 0xdc]
movss dword [ebp - 0x18], xmm0
call fcn.100514dd
mov edx, dword [ebp - 0x4c]
mov esi, eax
movss xmm0, dword [ebp - 0x18]
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 - 0x14]
movss dword [edx + 0x14], xmm0
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x14]
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 - 0x28]
add ecx, 0x70
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x28], ecx
cmp eax, dword [ebp + 0x10]
jl 0x1004cf94
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x1004d02d
push eax
call fcn.1000e40f
pop ecx
cmp byte [esi + 0x1dc], 0
je 0x1004d03d
push esi
call fcn.10050256
pop ecx
movss xmm0, dword [esi + 0xb8]
ucomiss xmm0, dword [0x100bd4e8]
movss xmm2, dword [edi + 0x3bd0]
lahf
test ah, 0x44
jnp 0x1004d08d
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1004d08d
mov ecx, dword [ebp + 0x10]
movaps xmm1, xmm2
divss xmm1, xmm0
test ecx, ecx
jle 0x1004d08d
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 0x1004d073
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 0x1004d0b3
push 0
call fcn.10023b0d
push esi
call fcn.1004d1b1
xor eax, eax
inc eax
pop ecx
call fcn.10095667
ret