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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x19c
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x4932c0
cmp dword [edi], 0xfff88e3b
jne 0x4932c0
mov edx, dword [edi + 0x120]
mov dword [ebp - 4], edx
test edx, edx
je 0x4932c0
cmp dword [edx], 0xfff88e3b
jne 0x491b84
cmp dword [edx + 4], 0
jg 0x4932c0
mov dword [edx], 0xfff88e3b
mov dword [edx + 4], 0
cmp dword [edi + 0xc], 1
jl 0x4932c0
mov eax, dword [edi + 8]
dec eax
cmp eax, 1
ja 0x4932c0
mov eax, dword [edi + 0x10]
test eax, eax
je 0x491bce
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push ecx
push eax
call fcn.00496ac0
add esp, 8
test eax, eax
js 0x4932c0
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0xb4]
push esi
lea esi, [edx + 0x14]
mov dword [esi + 0x6c], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x10], esi
mov dword [esi + 0x7c], eax
test eax, eax
je 0x491bef
mov dword [edi + 0x24], 0
cmp dword [edx + 0x14f30], 0
je 0x491bff
mov dword [edi + 0x24], 0
mov eax, dword [edi + 0x110]
mov dword [edx + 0x14f44], eax
mov eax, dword [edi + 0x114]
mov dword [edx + 0x14f48], eax
mov eax, dword [edi + 0x118]
mov dword [edx + 0x14f4c], eax
cmp dword [edi + 0x128], 0
je 0x491c45
call fcn.0040a800
mov edx, dword [ebp - 4]
add eax, eax
mov ecx, dword [edx + 0x14f00]
xor eax, ecx
and eax, 2
xor eax, ecx
jmp 0x491c4e
mov eax, dword [edx + 0x14f00]
and eax, 0xfffffffd
mov dword [edx + 0x14f00], eax
cmp dword [edi + 0x124], 0
je 0x491c74
call fcn.0040a800
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x14f00]
xor eax, ecx
and eax, 1
xor eax, ecx
jmp 0x491c77
and eax, 0xfffffffe
mov dword [edx + 0x14f00], eax
cmp dword [edi + 0x12c], 0
je 0x491cbe
call fcn.0040a800
mov edx, dword [ebp - 4]
shl eax, 2
mov ecx, dword [edx + 0x14f00]
xor eax, ecx
and eax, 4
xor eax, ecx
mov dword [edx + 0x14f00], eax
call fcn.0040a800
mov edx, dword [ebp - 4]
shl eax, 3
mov ecx, dword [edx + 0x14f00]
xor eax, ecx
and eax, 8
xor eax, ecx
jmp 0x491cc1
and eax, 0xfffffff3
mov dword [edx + 0x14f00], eax
mov eax, dword [edi + 0x9c]
mov dword [esi + 0x58], eax
mov eax, dword [edi + 0x78]
mov dword [esi + 0x90], eax
mov eax, dword [edi + 0x68]
mov dword [esi + 0x94], eax
mov eax, dword [edi + 0x6c]
mov dword [esi + 0x98], eax
mov eax, dword [edi + 0x70]
mov dword [esi + 0x9c], eax
mov eax, dword [edi + 0x74]
mov dword [esi + 0xa0], eax
mov eax, dword [edi + 8]
mov dword [esi + 0x34], eax
cmp eax, 1
jne 0x491d0f
mov dword [edi + 0x30], 3
xor eax, eax
cmp dword [edi + 0x30], 3
setne al
inc eax
mov dword [esi + 0x38], eax
cmp dword [edi + 0x30], 1
je 0x491d29
mov dword [edi + 0x34], 0
cmp dword [esi + 0x58], 0
mov eax, dword [edi + 0x34]
mov dword [esi + 0x40], eax
jne 0x491d4b
mov eax, dword [edi + 0xa8]
cmp eax, 0x80
je 0x491d4b
cmp dword [edi + 0x60], 0
jne 0x491d4b
mov dword [edi + 0x60], eax
mov eax, dword [esi + 0x58]
sub eax, 0
je 0x491d64
sub eax, 1
je 0x491d64
sub eax, 3
je 0x491d64
mov dword [edi + 0x38], 0
cmp dword [esi + 0x58], 0
xorps xmm2, xmm2
mov eax, dword [edi + 0x38]
xorps xmm4, xmm4
mov dword [esi + 0x88], eax
jne 0x491e66
cmp dword [edi + 0x60], 0
jne 0x491dd3
movss xmm0, dword [edi + 0x64]
xor eax, eax
movsd xmm3, qword [0x52db10]
cvtps2pd xmm1, xmm0
subss xmm0, xmm4
andps xmm2, xmm3
andps xmm1, xmm3
comisd xmm1, xmm2
cvtps2pd xmm0, xmm0
andps xmm0, xmm3
jbe 0x491db9
mulsd xmm1, qword [0x4f60b8]
comisd xmm1, xmm0
jmp 0x491dc5
mulsd xmm2, qword [0x4f60b8]
comisd xmm2, xmm0
setae al
test eax, eax
je 0x491dd3
mov dword [edi + 0x64], 0x41306666
cmp dword [esi + 0x58], 0
jne 0x491e66
movss xmm0, dword [edi + 0x64]
comiss xmm0, xmm4
jbe 0x491e66
mov edx, dword [edi + 0x10]
test edx, edx
jne 0x491e11
movd xmm0, dword [edi + 0xc]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x4f60c8]
cvttsd2si eax, xmm0
push eax
call fcn.00497a20
mov edx, eax
add esp, 4
mov dword [edi + 0x10], edx
mov ecx, dword [esi + 0x38]
movss xmm0, dword [edi + 0x64]
imul ecx, edx
cvtps2pd xmm0, xmm0
push esi
push edx
shl ecx, 4
mulsd xmm0, qword [0x52d810]
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [edi + 0x60], eax
call fcn.00496ac0
add esp, 8
mov dword [esi + 4], eax
cmp dword [esi + 0x88], 0
jne 0x491e66
push dword [edi + 0x10]
push dword [esi]
push dword [edi + 0x60]
call fcn.00496a50
add esp, 0xc
mov dword [edi + 0x60], eax
mov edx, dword [edi + 0x10]
test edx, edx
je 0x491ef5
mov eax, dword [edi + 0xa8]
lea ecx, [edi + 0xa8]
cmp edx, 0x3e80
jge 0x491eab
cmp eax, 8
jle 0x491e9d
mov dword [ecx], eax
cmp eax, 0x40
jl 0x491eee
mov eax, 0x40
mov dword [ecx], eax
jmp 0x492130
mov eax, 8
mov dword [ecx], eax
mov dword [ecx], eax
jmp 0x492130
cmp edx, 0x7d00
jge 0x491ecd
cmp eax, 8
jle 0x491e9d
mov dword [ecx], eax
cmp eax, 0xa0
jl 0x491eee
mov eax, 0xa0
mov dword [ecx], eax
jmp 0x492130
cmp eax, 0x20
jle 0x491ee7
mov dword [ecx], eax
cmp eax, 0x140
jl 0x491eee
mov eax, 0x140
mov dword [ecx], eax
jmp 0x492130
mov eax, 0x20
mov dword [ecx], eax
mov dword [ecx], eax
jmp 0x492130
mov eax, dword [esi + 0x58]
cmp eax, 1
je 0x491f06
cmp eax, 4
jne 0x492130
movaps xmm0, xmmword [0x4f6210]
lea ecx, [ebp - 0x168]
movd xmm2, dword [edi + 0xa4]
mov edx, 2
movups xmmword [ebp - 0x198], xmm0
mov dword [ebp - 0x19c], 0xbb80
movaps xmm0, xmmword [0x4f6210]
movups xmmword [ebp - 0x180], xmm0
mov dword [ebp - 0x188], 0x5c94
movaps xmm0, xmmword [0x4f6250]
movups xmmword [ebp - 0x168], xmm0
mov dword [ebp - 0x184], 0xac44
movaps xmm0, xmmword [0x4f6200]
movups xmmword [ebp - 0x150], xmm0
mov dword [ebp - 0x170], 0x5514
movaps xmm0, xmmword [0x4f6260]
movups xmmword [ebp - 0x138], xmm0
mov dword [ebp - 0x16c], 0x7d00
movaps xmm0, xmmword [0x4f6220]
movups xmmword [ebp - 0x120], xmm0
mov dword [ebp - 0x158], 0x3db8
movaps xmm0, xmmword [0x4f61f0]
cvtdq2ps xmm2, xmm2
mov dword [ebp - 0x154], 0x5dc0
mov dword [ebp - 0x140], 0x2e4a
mov dword [ebp - 0x13c], 0x5622
mov dword [ebp - 0x128], 0x2a8c
movups xmmword [ebp - 0x108], xmm0
mov dword [ebp - 0x124], 0x3e80
movaps xmm0, xmmword [0x4f6240]
addss xmm2, dword [edi + 0xa0]
movups xmmword [ebp - 0xf0], xmm0
mov dword [ebp - 0x110], 0x1edf
movaps xmm0, xmmword [0x4f6230]
mov dword [ebp - 0x10c], 0x2ee0
mov dword [ebp - 0xf8], 0x1728
mov dword [ebp - 0xf4], 0x2b11
mov dword [ebp - 0xe0], 0x1546
mov dword [ebp - 0xdc], 0x1f40
movups xmmword [ebp - 0xd8], xmm0
mov dword [ebp - 0xc8], 0xf70
mov eax, dword [ecx - 4]
cmp dword [edi + 0xc], eax
jne 0x4920a5
movss xmm1, dword [ecx]
comiss xmm1, xmm2
jbe 0x4920a7
movaps xmm0, xmm2
divss xmm0, xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
movss xmm0, dword [ecx + 8]
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [edi + 0xa4], eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edi + 0xa0], xmm0
jmp 0x4920a7
jl 0x4920ba
movss xmm4, dword [ecx]
comiss xmm2, xmm4
jb 0x4920ba
movss xmm3, dword [ecx + 4]
comiss xmm3, xmm2
ja 0x4920c5
inc edx
add ecx, 0x18
cmp edx, 9
jl 0x492056
jmp 0x492130
cmp dword [edi + 0xb8], 0
lea eax, [edx + edx*2]
movss xmm1, dword [ebp + eax*8 - 0x190]
subss xmm2, xmm4
movss xmm0, dword [ebp + eax*8 - 0x18c]
subss xmm3, xmm4
subss xmm0, xmm1
mulss xmm0, xmm2
divss xmm0, xmm3
addss xmm0, xmm1
cvtps2pd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [edi + 0xa4], eax
movd xmm0, eax
mov eax, dword [ecx - 4]
cvtdq2pd xmm0, xmm0
mov dword [edi + 0x10], eax
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edi + 0xa0], xmm0
jne 0x492130
mov dword [edi + 0xb8], 0xffffffff
mov edx, dword [edi + 0xb8]
lea eax, [edi + 0xb8]
test edx, edx
jne 0x4923cb
mov eax, dword [esi + 0x58]
cmp eax, 4
ja case.default.0x492150
jmp dword [eax*4 + 0x4932c8]
movaps xmm0, xmmword [0x4f6110]
push dword [edi + 0x60]
movups xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0x44], 0x140
movaps xmm0, xmmword [0x4f6120]
movups xmmword [ebp - 0xb4], xmm0
mov dword [ebp - 0x40], 0x5014
movaps xmm0, xmmword [0x4f6130]
movups xmmword [ebp - 0xa4], xmm0
movaps xmm0, xmmword [0x4f6140]
movups xmmword [ebp - 0x94], xmm0
movaps xmm0, xmmword [0x4f6170]
movups xmmword [ebp - 0x84], xmm0
movaps xmm0, xmmword [0x4f6190]
movups xmmword [ebp - 0x74], xmm0
movaps xmm0, xmmword [0x4f61d0]
movups xmmword [ebp - 0x64], xmm0
movaps xmm0, xmmword [0x4f61e0]
movups xmmword [ebp - 0x54], xmm0
call fcn.00497aa0
add esp, 4
movd xmm2, dword [ebp + eax*8 - 0xc0]
cvtdq2pd xmm2, xmm2
jmp 0x4923a1
movaps xmm0, xmmword [0x4f6110]
push dword [edi + 0xa8]
movups xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0x44], 0x140
movaps xmm0, xmmword [0x4f6120]
movups xmmword [ebp - 0xb4], xmm0
mov dword [ebp - 0x40], 0x5014
movaps xmm0, xmmword [0x4f6130]
movups xmmword [ebp - 0xa4], xmm0
movaps xmm0, xmmword [0x4f6140]
movups xmmword [ebp - 0x94], xmm0
movaps xmm0, xmmword [0x4f6170]
movups xmmword [ebp - 0x84], xmm0
movaps xmm0, xmmword [0x4f6190]
movups xmmword [ebp - 0x74], xmm0
movaps xmm0, xmmword [0x4f61d0]
movups xmmword [ebp - 0x64], xmm0
movaps xmm0, xmmword [0x4f61e0]
movups xmmword [ebp - 0x54], xmm0
call fcn.00497aa0
add esp, 4
movd xmm2, dword [ebp + eax*8 - 0xc0]
cvtdq2pd xmm2, xmm2
jmp 0x4923a1
movaps xmm0, xmmword [0x4f61c0]
mov eax, dword [edi + 0xa4]
mov dword [ebp - 0x1c], 0x30d4
mov dword [ebp - 0x18], 0x2710
mov dword [ebp - 0x14], 0xf6e
movups xmmword [ebp - 0x3c], xmm0
movaps xmm0, xmmword [0x4f6160]
movups xmmword [ebp - 0x2c], xmm0
cmp eax, 9
ja 0x492399
movd xmm1, dword [ebp + eax*4 - 0x3c]
movd xmm2, dword [ebp + eax*4 - 0x38]
jmp 0x492378
movaps xmm0, xmmword [0x4f61b0]
mov eax, dword [edi + 0xa4]
mov dword [ebp - 0x1c], 0x3b60
mov dword [ebp - 0x18], 0x1c3e
mov dword [ebp - 0x14], 0xf6e
movups xmmword [ebp - 0x3c], xmm0
movaps xmm0, xmmword [0x4f6180]
movups xmmword [ebp - 0x2c], xmm0
cmp eax, 9
ja 0x49232c
movd xmm1, dword [ebp + eax*4 - 0x3c]
movd xmm2, dword [ebp + eax*4 - 0x38]
movss xmm0, dword [edi + 0xa0]
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
subsd xmm2, xmm1
mulsd xmm2, xmm0
addsd xmm2, xmm1
jmp 0x4923a1
movsd xmm2, qword [0x4f60e8]
jmp 0x4923a1
movaps xmm0, xmmword [0x4f61a0]
mov eax, dword [edi + 0xa4]
mov dword [ebp - 0x1c], 0x30d4
mov dword [ebp - 0x18], 0x251c
mov dword [ebp - 0x14], 0xf6e
movups xmmword [ebp - 0x3c], xmm0
movaps xmm0, xmmword [0x4f6150]
movups xmmword [ebp - 0x2c], xmm0
cmp eax, 9
ja 0x492399
movd xmm1, dword [ebp + eax*4 - 0x3c]
movd xmm2, dword [ebp + eax*4 - 0x38]
movss xmm0, dword [edi + 0xa0]
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
subsd xmm2, xmm1
mulsd xmm2, xmm0
addsd xmm2, xmm1
jmp 0x4923a1
movsd xmm2, qword [0x4f60e0]
cmp dword [edi + 0x30], 3
jne 0x4923bb
mov eax, dword [esi + 0x58]
test eax, eax
je 0x4923b3
cmp eax, 3
jne 0x4923bb
mulsd xmm2, qword [0x4f5e38]
cvttsd2si edx, xmm2
lea eax, [edi + 0xb8]
mov dword [edi + 0xb8], edx
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xc], 0x5dc0
test ecx, ecx
jne 0x49257e
mov ecx, dword [edi + 0xc]
lea eax, [edx + edx]
cmp eax, ecx
jle 0x4923f6
mov eax, ecx
cdq
sub eax, edx
mov edx, eax
sar edx, 1
mov dword [edi + 0xb8], edx
mov eax, dword [edi + 0xc]
mov ecx, 0xac44
mov dword [ebp - 8], 0x1f40
cmp eax, 0xbb80
jl 0x492413
mov ecx, 0xbb80
jmp 0x492477
cmp eax, 0xac44
jge 0x492477
cmp eax, 0x7d00
jl 0x492428
mov ecx, 0x7d00
jmp 0x492477
cmp eax, 0x5dc0
jl 0x492436
mov ecx, 0x5dc0
jmp 0x492477
cmp eax, 0x5622
jl 0x492444
mov ecx, 0x5622
jmp 0x492477
cmp eax, 0x3e80
jl 0x492452
mov ecx, 0x3e80
jmp 0x492477
cmp eax, 0x2ee0
jl 0x492460
mov ecx, 0x2ee0
jmp 0x492477
cmp eax, 0x2b11
jl 0x49246e
mov ecx, 0x2b11
jmp 0x492477
cmp eax, 0x1f40
cmovge ecx, dword [ebp - 8]
cmp edx, 0xffffffff
je 0x49256f
cmp edx, 0x3e58
mov dword [ebp - 8], 0xac44
cmovle ecx, dword [ebp - 8]
cmp edx, 0x3b92
mov dword [ebp - 8], 0x7d00
cmovle ecx, dword [ebp - 8]
cmp edx, 0x2bd4
mov dword [ebp - 8], 0x5622
cmovle ecx, dword [ebp - 0xc]
cmp edx, 0x26f2
cmovle ecx, dword [ebp - 8]
cmp edx, 0x1c3e
mov dword [ebp - 8], 0x3e80
cmovle ecx, dword [ebp - 8]
cmp edx, 0x152c
mov dword [ebp - 8], 0x2ee0
cmovle ecx, dword [ebp - 8]
cmp edx, 0x119e
mov dword [ebp - 8], 0x2b11
cmovle ecx, dword [ebp - 8]
cmp edx, 0xf82
mov edx, 0x1f40
cmovle ecx, edx
cmp eax, ecx
jge 0x49256f
cmp eax, 0xac44
jle 0x492510
mov ecx, 0xbb80
jmp 0x49256f
cmp eax, 0x7d00
jle 0x49251e
mov ecx, 0xac44
jmp 0x49256f
cmp eax, 0x5dc0
jle 0x49252c
mov ecx, 0x7d00
jmp 0x49256f
cmp eax, 0x5622
jle 0x49253a
mov ecx, 0x5dc0
jmp 0x49256f
cmp eax, 0x3e80
jle 0x492548
mov ecx, 0x5622
jmp 0x49256f
cmp eax, 0x2ee0
jle 0x492556
mov ecx, 0x3e80
jmp 0x49256f
cmp eax, 0x2b11
jle 0x492564
mov ecx, 0x2ee0
jmp 0x49256f
cmp eax, 0x1f40
mov ecx, edx
cmovg ecx, dword [ebp - 8]
mov edx, dword [edi + 0xb8]
lea eax, [edi + 0xb8]
mov dword [edi + 0x10], ecx
cmp dword [esi + 0x58], 1
je 0x49259d
cmp dword [esi + 0x58], 4
je 0x49259d
cmp edx, 0x5014
mov dword [ebp - 0xc], 0x5014
cmovg edx, dword [ebp - 0xc]
jmp 0x4925a7
cmp edx, 0x5dc0
cmovg edx, dword [ebp - 0xc]
mov dword [eax], edx
mov eax, ecx
movsd xmm2, qword [0x52d810]
mov dword [ebp - 0xc], edx
cdq
sub eax, edx
lea edx, [edi + 0x64]
sar eax, 1
cmp eax, dword [ebp - 0xc]
mov dword [ebp - 8], edx
cmovge eax, dword [ebp - 0xc]
mov dword [edi + 0xb8], eax
cmp dword [esi + 0x58], 0
jne 0x4925fe
mov eax, dword [esi + 0x38]
movd xmm0, dword [edi + 0x60]
imul eax, ecx
cvtdq2pd xmm0, xmm0
shl eax, 4
mulsd xmm0, xmm2
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx], xmm0
cmp dword [esi + 0x58], 3
jne 0x492635
mov eax, dword [esi + 0x38]
movd xmm0, dword [edi + 0xa8]
imul eax, ecx
mov ecx, edx
cvtdq2pd xmm0, xmm0
shl eax, 4
mulsd xmm0, xmm2
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [ecx], xmm0
jmp 0x492638
mov ecx, dword [ebp - 8]
mov eax, dword [edi + 0x80]
mov dword [esi + 0x80], eax
mov eax, dword [edi + 0xb8]
mov dword [esi + 0x24], eax
mov eax, dword [edi + 0xbc]
mov dword [esi + 0x28], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 8], eax
mov dword [esi + 0x30], eax
xor eax, eax
cmp dword [ebp - 8], 0x5dc0
setg al
inc eax
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x58]
dec eax
cmp eax, 3
ja case.default.0x49267e
jmp dword [eax*4 + 0x4932dc]
movaps xmm0, xmmword [0x4f6270]
mov eax, dword [edi + 0xa4]
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x18], 0x41700000
movaps xmm0, xmmword [0x4f6280]
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x14], 0x41840000
movss xmm0, dword [ebp + eax*4 - 0x38]
jmp 0x4926ea
movd xmm0, dword [edi + 0xa8]
jmp 0x4926c6
movd xmm0, dword [edi + 0x60]
mov eax, dword [esi + 0x38]
mov edx, ecx
imul eax, dword [ebp - 8]
cvtdq2pd xmm0, xmm0
shl eax, 4
mulsd xmm0, xmm2
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx], xmm0
mov eax, dword [edi + 0x30]
cmp eax, 4
jne 0x492702
mov dword [edi + 0x30], 1
mov eax, 1
mov dword [esi + 0xa4], eax
lea ecx, [esi + 0xf0]
mov eax, dword [esi + 0x28]
lea edx, [esi + 0xf4]
test eax, eax
jle 0x492760
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm1, xmm1
cvtpd2ps xmm2, xmm1
movss dword [ecx], xmm2
mov esi, dword [edi + 0xc4]
test esi, esi
jl 0x492747
add eax, esi
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm1, xmm1
mov esi, dword [ebp - 0x10]
cvtpd2ps xmm1, xmm1
movd xmm0, dword [esi + 0x30]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
divss xmm2, xmm0
jmp 0x492766
xorps xmm1, xmm1
xorps xmm2, xmm2
movss dword [ecx], xmm2
xorps xmm3, xmm3
movss dword [edx], xmm1
mov ecx, dword [esi + 0x24]
mov dword [esi + 0xe8], 0
mov dword [esi + 0xec], 0
test ecx, ecx
jle 0x4927f9
mov eax, dword [esi + 0x30]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x4927f9
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
cvtpd2ps xmm2, xmm0
movss dword [esi + 0xec], xmm2
mov eax, dword [edi + 0xc0]
test eax, eax
js 0x4927d6
sub ecx, eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
cvtpd2ps xmm1, xmm0
comiss xmm3, xmm1
jbe 0x4927d9
xorps xmm1, xmm1
jmp 0x4927d9
movaps xmm1, xmm2
movd xmm0, dword [esi + 0x30]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
divss xmm2, xmm0
movss dword [esi + 0xe8], xmm1
movss dword [esi + 0xec], xmm2
push dword [ebp - 4]
call fcn.004932f0
push esi
push dword [esi + 0x30]
call fcn.00496ac0
add esp, 0xc
mov dword [esi + 4], eax
cmp dword [esi + 0x58], 0
jne 0x492865
cmp dword [esi + 0x88], 0
je 0x49282e
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x14b08], 0
jmp 0x492872
push dword [esi + 0x30]
push dword [esi]
push dword [edi + 0x60]
call fcn.00496a50
mov dword [edi + 0x60], eax
push dword [esi + 0x30]
push dword [esi]
push eax
call fcn.00496a10
mov ecx, dword [ebp - 4]
add esp, 0x18
mov dword [ecx + 0x14b08], eax
test eax, eax
jg 0x492872
mov dword [ecx + 0x14b08], 8
jmp 0x492872
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x14b08], 1
push ecx
call fcn.0049ab20
xor eax, eax
add esp, 4
cmp dword [esi + 0x30], 0x3e80
mov ecx, 2
mov edi, 0x17
cmovl eax, ecx
mov ecx, dword [ebp - 4]
add eax, dword [esi]
lea eax, [eax + eax*2]
add eax, dword [esi + 4]
lea esi, [ecx + 0x5374]
imul edx, eax, 0xcc
mov dword [ebp - 0xc], eax
add edx, 0x4f77b8
mov eax, dword [edx]
lea edx, [edx + 4]
mov dword [esi], eax
lea esi, [esi + 4]
sub edi, 1
jne 0x4928b1
mov esi, dword [ecx + 0x53c8]
mov eax, 0x2aaaaaab
mov ecx, dword [ecx + 0x53cc]
sub ecx, esi
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 4]
lea eax, [ecx + esi]
mov dword [edx + 0x5408], esi
mov dword [edx + 0x540c], eax
lea eax, [esi + ecx*2]
mov dword [edx + 0x5410], eax
lea eax, [esi + ecx*2]
add eax, ecx
mov dword [edx + 0x5420], 0x240
mov dword [edx + 0x5414], eax
lea eax, [esi + ecx*4]
mov dword [edx + 0x5418], eax
lea eax, [esi + ecx*4]
add eax, ecx
lea esi, [edx + 0x53d0]
imul ecx, dword [ebp - 0xc], 0xcc
mov dword [edx + 0x541c], eax
lea edx, [edi + 0xe]
add ecx, 0x4f7814
mov eax, dword [ecx]
lea ecx, [ecx + 4]
mov dword [esi], eax
lea esi, [esi + 4]
sub edx, 1
jne 0x492936
mov edx, dword [ebp - 4]
mov eax, 0x2aaaaaab
mov esi, dword [edx + 0x5400]
mov ecx, dword [edx + 0x5404]
sub ecx, esi
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 4]
lea eax, [ecx + esi]
mov dword [edx + 0x5424], esi
mov dword [edx + 0x5428], eax
lea eax, [esi + ecx*2]
mov dword [edx + 0x542c], eax
lea eax, [esi + ecx*2]
add eax, ecx
mov dword [edx + 0x543c], 0xc0
mov dword [edx + 0x5430], eax
lea eax, [esi + ecx*4]
mov dword [edx + 0x5434], eax
lea eax, [esi + ecx*4]
mov esi, dword [ebp - 0x10]
add eax, ecx
mov dword [edx + 0x5438], eax
cmp dword [esi + 0x3c], 2
mov ecx, dword [esi + 0x38]
jne 0x4929c9
cmp ecx, 1
mov dword [ebp - 0x10], 0x15
mov eax, 0x24
cmove eax, dword [ebp - 0x10]
jmp 0x4929d8
xor eax, eax
cmp ecx, 1
setne al
lea eax, [eax*8 + 0xd]
mov dword [esi + 8], eax
cmp dword [esi + 0x90], 0
je 0x4929ea
add eax, 2
mov dword [esi + 8], eax
lea ecx, [edx + 0x9b50]
mov edx, 2
mov eax, dword [esi + 0x3c]
lea ecx, [ecx + 0x20]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x24], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x20], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x1c], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x18], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x14], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0x10], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0xc], xmm0
mov eax, dword [esi + 0x3c]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 8], xmm0
sub edx, 1
jne 0x4929f5
mov edx, dword [ebp - 4]
mov edi, 3
lea ecx, [edx + 0x9b8c]
nop word [eax + eax]
mov eax, dword [esi + 0x3c]
lea ecx, [ecx + 4]
imul eax, dword [esi + 0x38]
imul eax, eax, 0x2bc
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 4], xmm0
sub edi, 1
jne 0x492ae0
mov edi, dword [ebp + 8]
cmp dword [edi + 0xdc], 0xffffffff
jne 0x492b17
mov dword [edi + 0xdc], 4
mov eax, dword [esi + 0x58]
sub eax, 1
je 0x492bdd
sub eax, 1
je 0x492b7c
sub eax, 2
je 0x492bdd
mov dword [edx + 0x14c64], 0
cmp dword [edi + 0x2c], 0
jge 0x492b48
mov dword [edi + 0x2c], 3
cmp dword [esi + 0x58], 0
jne 0x492b5a
push dword [edi + 0x60]
push edi
call fcn.00493b90
add esp, 8
push 0
push dword [edi + 0xa8]
push edi
call fcn.0049e480
mov eax, dword [esi + 0x58]
add esp, 0xc
mov dword [edi + 0x9c], eax
mov eax, dword [ebp - 4]
jmp 0x492c69
mov eax, 0x32
sub eax, dword [edi + 0xa4]
push 0
lea eax, [eax + eax*4]
add eax, eax
push eax
push edi
call fcn.0049e480
xor ecx, ecx
add esp, 0xc
cmp dword [edi + 0x8c], ecx
jne 0x492bac
cmp dword [esi + 0x30], 0xabe0
setg cl
mov eax, dword [ebp - 4]
mov dword [eax + 0x14c64], ecx
mov ecx, dword [edi + 0x2c]
cmp ecx, 6
jle 0x492bc9
mov dword [edi + 0x2c], 6
jmp 0x492c69
test ecx, ecx
jns 0x492c69
mov dword [edi + 0x2c], 3
jmp 0x492c69
cmp dword [edi + 0x7c], 0
jge 0x492bea
mov dword [edi + 0x7c], 2
cmp dword [edi + 0xf4], 0
jge 0x492bfd
mov dword [edi + 0xf4], 0
mov eax, 0x32
sub eax, dword [edi + 0xa4]
push 0
lea eax, [eax + eax*4]
add eax, eax
push eax
push edi
call fcn.0049e480
mov eax, dword [edi + 0x2c]
add esp, 0xc
test eax, eax
js 0x492c33
cmp eax, 5
jl 0x492c33
cmp eax, 7
jle 0x492c3a
mov dword [edi + 0x2c], 7
jmp 0x492c3a
mov dword [edi + 0x2c], 0
cmp dword [edi + 0x8c], 0
je 0x492c52
mov eax, dword [ebp - 4]
mov dword [eax + 0x14c64], 0
jmp 0x492c69
mov ecx, dword [ebp - 4]
xor eax, eax
cmp dword [esi + 0x30], 0xabe0
setg al
mov dword [ecx + 0x14c64], eax
mov eax, ecx
movss xmm0, dword [edi + 0xc8]
movss dword [eax + 0x14bb0], xmm0
movss xmm1, dword [edi + 0xcc]
movss dword [eax + 0x14bb4], xmm1
cmp dword [edi + 0x100], 0
je 0x492cb2
addss xmm0, dword [edi + 0x104]
movss dword [eax + 0x14bb0], xmm0
addss xmm1, dword [edi + 0x104]
movss dword [eax + 0x14bb4], xmm1
cmp dword [esi + 0x58], 0
je 0x492dbc
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x60], 1
mov dword [esi + 0x64], 0xe
cmp ecx, 0x3e80
jge 0x492cdc
mov dword [esi + 0x64], 8
mov eax, dword [edi + 0xac]
test eax, eax
je 0x492d11
push ecx
push dword [esi]
push eax
call fcn.00496a50
mov dword [edi + 0xac], eax
push dword [esi + 0x30]
push dword [esi]
push eax
call fcn.00496a10
add esp, 0x18
mov dword [esi + 0x60], eax
test eax, eax
jns 0x492d11
mov dword [esi + 0x60], 1
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x492d58
push dword [esi + 0x30]
push dword [esi]
push eax
call fcn.00496a50
mov dword [edi + 0xb0], eax
push dword [esi + 0x30]
push dword [esi]
push eax
call fcn.00496a10
add esp, 0x18
mov dword [esi + 0x64], eax
test eax, eax
jns 0x492d58
cmp dword [esi + 0x30], 0x3e80
mov eax, 0xe
mov ecx, 8
cmovl eax, ecx
mov dword [esi + 0x64], eax
mov eax, dword [esi]
shl eax, 4
add eax, dword [esi + 0x60]
mov eax, dword [eax*4 + 0x4f8ed0]
mov dword [edi + 0xac], eax
mov eax, dword [esi]
shl eax, 4
add eax, dword [esi + 0x64]
mov eax, dword [eax*4 + 0x4f8ed0]
mov dword [edi + 0xb0], eax
mov eax, dword [esi]
shl eax, 4
add eax, dword [esi + 0x64]
mov ecx, dword [eax*4 + 0x4f8ed0]
mov eax, dword [edi + 0xa8]
cmp ecx, eax
cmovge ecx, eax
mov dword [edi + 0xa8], ecx
mov eax, dword [esi]
shl eax, 4
add eax, dword [esi + 0x60]
mov eax, dword [eax*4 + 0x4f8ed0]
cmp eax, ecx
cmovg ecx, eax
mov dword [edi + 0xa8], ecx
mov eax, dword [edi + 0x98]
mov ecx, dword [ebp - 4]
mov dword [esi + 0x54], eax
mov eax, dword [edi + 0x24]
mov dword [esi + 0x8c], eax
mov eax, dword [edi + 0x50]
mov dword [ecx + 0x14c68], eax
mov eax, dword [edi + 0x54]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x5c]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x60]
mov dword [esi + 0x68], eax
mov eax, dword [edi + 0xa8]
mov dword [esi + 0x5c], eax
mov eax, dword [edi + 0x64]
push edi
mov dword [esi + 0xe4], eax
call fcn.00493600
mov eax, dword [ebp - 4]
add esp, 4
mov ecx, dword [edi + 0xe8]
mov eax, dword [eax + 0x14f28]
test ecx, ecx
jns 0x492e25
mov ecx, 3
mov dword [eax], ecx
movss xmm1, dword [edi + 0xec]
cvtps2pd xmm1, xmm1
movsd xmm0, qword [0x52d7d0]
divsd xmm1, qword [0x4f6100]
call fcn.004d76e0
mov eax, dword [ebp - 4]
cvtsd2ss xmm0, xmm0
mov eax, dword [eax + 0x14f28]
movss dword [eax + 4], xmm0
mov eax, dword [edi + 0xf0]
cmp eax, 0xffffffff
jne 0x492e70
mov dword [edi + 0xf0], 0
jmp 0x492e74
test eax, eax
jne 0x492e94
mov ecx, dword [esi + 0xa4]
cmp ecx, 1
je 0x492e85
xor eax, eax
test ecx, ecx
jne 0x492e94
mov dword [edi + 0xf0], 1
mov eax, 1
push edi
mov dword [esi + 0xa8], eax
call fcn.004939c0
add esp, 4
test eax, eax
jns 0x492eb2
push 1
push edi
call fcn.00493eb0
add esp, 8
push edi
call fcn.004939f0
add esp, 4
test eax, eax
jns 0x492eca
push 0
push edi
call fcn.00493ee0
add esp, 8
push edi
call fcn.00493990
fstp dword [ebp + 8]
xorps xmm5, xmm5
add esp, 4
comiss xmm5, dword [ebp + 8]
jbe 0x492ef3
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
push edi
call fcn.00493e50
add esp, 0xc
push edi
call fcn.004938d0
or eax, 1
push eax
push edi
call fcn.00493ce0
add esp, 0xc
cmp dword [edi + 0xdc], 0
jge 0x492f19
mov dword [edi + 0xdc], 4
xorps xmm1, xmm1
comiss xmm1, dword [edi + 0xe0]
jbe 0x492f2f
mov dword [edi + 0xe0], 0x40800000
movss xmm0, dword [edi + 0xf8]
comiss xmm1, xmm0
jbe 0x492f49
mov dword [edi + 0xf8], 0
xorps xmm0, xmm0
cmp dword [edi + 0xf4], 0
jge 0x492f5c
mov dword [edi + 0xf4], 1
movss dword [esi + 0xac], xmm0
mov eax, dword [edi + 0xfc]
movsd xmm0, qword [0x52d7d0]
mov dword [esi + 0xb0], eax
subss xmm1, dword [edi + 0xe4]
movss dword [esi + 0xb4], xmm1
mulss xmm1, dword [0x52d5bc]
cvtps2pd xmm1, xmm1
call fcn.004d76e0
cmp dword [esi + 0xa4], 1
cvtsd2ss xmm0, xmm0
movss dword [esi + 0xb8], xmm0
mov eax, dword [edi + 0xe0]
mov dword [esi + 0xbc], eax
mov eax, dword [edi + 0xdc]
mov dword [esi + 0xc0], eax
mov eax, dword [edi + 0xd0]
mov dword [esi + 0xc4], eax
mov eax, dword [edi + 0xd4]
mov dword [esi + 0xc8], eax
mov eax, dword [edi + 0xd8]
mov dword [esi + 0xcc], eax
mov eax, dword [edi + 0x84]
mov dword [esi + 0x44], eax
mov eax, dword [edi + 0x88]
mov dword [esi + 0x48], eax
mov eax, dword [edi + 0xf4]
mov dword [esi + 0x4c], eax
jne 0x49300f
mov eax, dword [edi + 0x94]
and eax, 2
jmp 0x493011
xor eax, eax
mov dword [esi + 0x50], eax
mov eax, dword [edi + 0x94]
movss xmm3, dword [0x52d874]
movss xmm2, dword [0x52d884]
sar eax, 2
and eax, 0x3f
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm3
jb 0x493040
subss xmm0, xmm2
movss xmm4, dword [0x52d5f0]
mulss xmm0, xmm4
movss dword [esi + 0xd8], xmm0
mov eax, dword [edi + 0x94]
sar eax, 8
and eax, 0x3f
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm3
jb 0x493070
subss xmm0, xmm2
mulss xmm0, xmm4
movss dword [esi + 0xd4], xmm0
mov eax, dword [edi + 0x94]
sar eax, 0xe
and eax, 0x3f
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm3
jb 0x493098
subss xmm0, xmm2
mulss xmm0, xmm4
movss dword [esi + 0xdc], xmm0
mov eax, dword [edi + 0x94]
sar eax, 0x14
and eax, 0x3f
movd xmm1, eax
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm3
jb 0x4930c0
subss xmm1, xmm2
cmp dword [esi + 0x34], 2
xorps xmm5, xmm5
mulss xmm1, xmm4
addss xmm1, xmm0
movss dword [esi + 0xe0], xmm1
movss xmm0, dword [edi + 0x14]
movss xmm3, dword [edi + 0x18]
movaps xmm1, xmm0
movss xmm2, dword [edi + 0x1c]
movaps xmm4, xmm3
mulss xmm1, xmm5
mulss xmm4, xmm0
mulss xmm3, xmm1
mulss xmm1, xmm2
mulss xmm2, xmm0
jne 0x493126
cmp dword [esi + 0x38], 1
jne 0x493126
addss xmm4, xmm1
xorps xmm1, xmm1
addss xmm3, xmm2
xorps xmm2, xmm2
mulss xmm4, dword [0x52d648]
mulss xmm3, dword [0x52d648]
mov eax, dword [ebp - 4]
movss dword [esi + 0xf8], xmm4
movss dword [esi + 0xfc], xmm3
movss dword [esi + 0x100], xmm1
movss dword [esi + 0x104], xmm2
mov dword [eax + 0x9b98], 0
mov dword [eax + 0x9b9c], 0
cmp dword [esi + 0x58], 0
jne 0x493183
mov eax, dword [esi]
inc eax
imul eax, dword [esi + 0x68]
imul eax, eax, 0x11940
cdq
idiv dword [esi + 0x30]
mov eax, dword [ebp - 4]
mov dword [eax + 0x9b98], edx
mov dword [eax + 0x9b9c], edx
cmp dword [edi], 0xfff88e3b
jne 0x4931fd
mov eax, dword [edi + 0x120]
mov dword [ebp + 8], eax
test eax, eax
je 0x4931fd
mov dword [eax + 0x14b0c], 0
cmp dword [edi + 0x44], 0
je 0x4931b4
push edi
call fcn.00494350
mov eax, dword [ebp + 8]
add esp, 4
push 0x140
add eax, 0x14848
push 0
push eax
call fcn.004c62a0
mov eax, dword [ebp + 8]
push 0x180
add eax, 0x14988
push 0
push eax
call fcn.004c62a0
mov eax, dword [ebp + 8]
add esp, 0x18
cmp dword [eax + 0xa0], 0
mov dword [eax + 0x14eb4], 0
je 0x4931fd
push edi
call fcn.004a35c0
add esp, 4
push dword [ebp - 4]
call fcn.0049cc10
push edi
call fcn.004a0c80
push dword [edi + 0x7c]
push esi
call fcn.0049a840
mov dword [esi + 0x84], eax
add esp, 0x10
mov ecx, dword [edi + 0x3c]
mov dword [esi + 0x70], ecx
mov eax, dword [edi + 0x40]
mov dword [esi + 0x78], eax
test eax, eax
je 0x493234
mov dword [esi + 0x74], 1
test ecx, ecx
je 0x493253
mov eax, dword [ebp - 4]
push dword [esi + 0x30]
push dword [eax + 0x14eac]
call fcn.00498070
add esp, 8
test eax, eax
jne 0x493253
mov dword [esi + 0x70], eax
cmp dword [esi + 0x78], 0
mov esi, dword [ebp - 4]
je 0x4932b1
cmp dword [edi + 0x28], 0
jne 0x4932b1
mov eax, dword [esi + 0x14f34]
test eax, eax
je 0x493275
push eax
call fcn.00495630
add esp, 4
call fcn.00495650
mov dword [esi + 0x14f34], eax
push dword [edi + 0x118]
push eax
call fcn.00495690
push dword [edi + 0x114]
push dword [esi + 0x14f34]
call fcn.00495670
push dword [edi + 0x110]
push dword [esi + 0x14f34]
call fcn.004956b0
add esp, 0x18
mov dword [esi + 4], 1
xor eax, eax
pop esi
pop edi
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
pop edi
mov esp, ebp
pop ebp
ret