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

Disassembly:
sub esp, 0x110
mov eax, dword [0x570f20]
xor eax, esp
mov dword [esp + 0x10c], eax
push ebp
mov ebp, dword [esp + 0x118]
xor ecx, ecx
cmp ebp, ecx
je 0x47c11b
cmp dword [ebp], 0xfff88e3b
je 0x47c134
or eax, 0xffffffff
pop ebp
mov ecx, dword [esp + 0x10c]
xor ecx, esp
call fcn.004a7314
add esp, 0x110
ret
push edi
mov edi, dword [ebp + 0x120]
cmp edi, ecx
je 0x47c14c
cmp dword [edi], 0xfff88e3b
jne 0x47c166
cmp dword [edi + 4], ecx
jle 0x47c166
pop edi
or eax, 0xffffffff
pop ebp
mov ecx, dword [esp + 0x10c]
xor ecx, esp
call fcn.004a7314
add esp, 0x110
ret
push esi
mov esi, 1
mov dword [edi], 0xfff88e3b
mov dword [edi + 4], ecx
cmp dword [ebp + 0xc], esi
jl 0x47dab6
mov eax, dword [ebp + 8]
cmp eax, esi
jl 0x47dab6
cmp eax, 2
jg 0x47dab6
mov eax, dword [ebp + 0x10]
cmp eax, ecx
je 0x47c1b3
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xc]
push ecx
push eax
call fcn.0047e8e0
add esp, 8
test eax, eax
js 0x47dab6
mov edx, dword [ebp + 0xb4]
push ebx
lea ebx, [edi + 0x14]
mov dword [ebx + 0x6c], edx
mov eax, dword [ebp + 0x20]
xor ecx, ecx
mov dword [ebx + 0x7c], eax
cmp eax, ecx
je 0x47c1cf
mov dword [ebp + 0x24], ecx
cmp dword [edi + 0x14f30], ecx
je 0x47c1da
mov dword [ebp + 0x24], ecx
mov eax, dword [ebp + 0x110]
mov dword [edi + 0x14f44], eax
mov edx, dword [ebp + 0x114]
mov dword [edi + 0x14f48], edx
mov eax, dword [ebp + 0x118]
mov dword [edi + 0x14f4c], eax
cmp dword [ebp + 0x128], ecx
je 0x47c21f
call fcn.0047f630
lea ecx, [eax + eax]
xor ecx, dword [edi + 0x14f00]
and ecx, 2
xor dword [edi + 0x14f00], ecx
jmp 0x47c226
and dword [edi + 0x14f00], 0xfffffffd
cmp dword [ebp + 0x124], 0
je 0x47c246
call fcn.0047f630
mov edx, dword [edi + 0x14f00]
xor edx, eax
and edx, esi
xor dword [edi + 0x14f00], edx
jmp 0x47c24d
and dword [edi + 0x14f00], 0xfffffffe
cmp dword [ebp + 0x12c], 0
je 0x47c28b
call fcn.0047f630
add eax, eax
add eax, eax
xor eax, dword [edi + 0x14f00]
and eax, 4
xor dword [edi + 0x14f00], eax
call fcn.0047f630
lea ecx, [eax*8]
xor ecx, dword [edi + 0x14f00]
and ecx, 8
xor dword [edi + 0x14f00], ecx
jmp 0x47c292
and dword [edi + 0x14f00], 0xfffffff3
mov edx, dword [ebp + 0x9c]
mov dword [ebx + 0x58], edx
mov eax, dword [ebp + 0x78]
mov dword [ebx + 0x90], eax
mov ecx, dword [ebp + 0x68]
mov dword [ebx + 0x94], ecx
mov edx, dword [ebp + 0x6c]
mov dword [ebx + 0x98], edx
mov eax, dword [ebp + 0x70]
mov dword [ebx + 0x9c], eax
mov ecx, dword [ebp + 0x74]
mov dword [ebx + 0xa0], ecx
mov eax, dword [ebp + 8]
mov dword [ebx + 0x34], eax
mov ecx, 3
cmp eax, esi
jne 0x47c2da
mov dword [ebp + 0x30], ecx
xor edx, edx
cmp dword [ebp + 0x30], ecx
setne dl
inc edx
mov dword [ebx + 0x38], edx
cmp dword [ebp + 0x30], esi
je 0x47c2f2
mov dword [ebp + 0x34], 0
cmp dword [ebx + 0x58], 0
mov eax, dword [ebp + 0x34]
mov dword [ebx + 0x40], eax
jne 0x47c314
mov eax, dword [ebp + 0xa8]
cmp eax, 0x80
je 0x47c314
cmp dword [ebp + 0x60], 0
jne 0x47c314
mov dword [ebp + 0x60], eax
mov eax, dword [ebx + 0x58]
test eax, eax
js 0x47c324
cmp eax, esi
jle 0x47c32b
cmp eax, 4
je 0x47c32b
mov dword [ebp + 0x38], 0
cmp dword [ebx + 0x58], 0
mov ecx, dword [ebp + 0x38]
xorps xmm4, xmm4
mov dword [ebx + 0x88], ecx
jne 0x47c3b3
cmp dword [ebp + 0x60], 0
jne 0x47c3af
movss xmm2, dword [ebp + 0x64]
movsd xmm3, qword [0x4c5fb0]
xorps xmm0, xmm0
cvtps2pd xmm0, xmm2
movapd xmm1, xmm4
andpd xmm0, xmm3
andpd xmm1, xmm3
comisd xmm0, xmm1
jbe 0x47c386
mulsd xmm0, qword [0x5538a0]
xorps xmm1, xmm1
cvtps2pd xmm1, xmm2
subsd xmm1, xmm4
andpd xmm1, xmm3
comisd xmm0, xmm1
jae 0x47c3a2
jmp 0x47c3af
mulsd xmm1, qword [0x5538a0]
xorps xmm0, xmm0
cvtps2pd xmm0, xmm2
subsd xmm0, xmm4
andpd xmm0, xmm3
comisd xmm1, xmm0
jb 0x47c3af
movss xmm0, dword [0x553958]
movss dword [ebp + 0x64], xmm0
cmp dword [ebx + 0x58], 0
xorps xmm2, xmm2
jne 0x47c44e
movss xmm0, dword [ebp + 0x64]
comiss xmm0, xmm2
jbe 0x47c44e
cmp dword [ebp + 0x10], 0
jne 0x47c3f1
movd xmm0, dword [ebp + 0xc]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x553950]
cvttsd2si edx, xmm0
push edx
call fcn.0047e820
add esp, 4
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebx + 0x38]
movss xmm1, dword [ebp + 0x64]
imul ecx, eax
shl ecx, 4
xorps xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm1, qword [0x4c6f50]
cvtsi2sd xmm0, ecx
divsd xmm0, xmm1
push ebx
cvttsd2si edx, xmm0
push eax
mov dword [ebp + 0x60], edx
call fcn.0047e8e0
add esp, 8
cmp dword [ebx + 0x88], 0
mov dword [ebx + 4], eax
jne 0x47c44b
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebx]
mov edx, dword [ebp + 0x60]
push eax
push ecx
push edx
call fcn.0047e6d0
add esp, 0xc
mov dword [ebp + 0x60], eax
xorps xmm2, xmm2
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x47c4c9
mov eax, dword [ebp + 0xa8]
cmp ecx, 0x3e80
jge 0x47c47f
cmp eax, 8
jg 0x47c46d
mov eax, 8
mov dword [ebp + 0xa8], eax
cmp eax, 0x40
jl 0x47c4c1
mov eax, 0x40
jmp 0x47c4c1
cmp ecx, 0x7d00
jge 0x47c4a5
cmp eax, 8
jg 0x47c491
mov eax, 8
mov dword [ebp + 0xa8], eax
cmp eax, 0xa0
jl 0x47c4c1
mov eax, 0xa0
jmp 0x47c4c1
cmp eax, 0x20
jg 0x47c4af
mov eax, 0x20
mov dword [ebp + 0xa8], eax
cmp eax, 0x140
jl 0x47c4c1
mov eax, 0x140
mov dword [ebp + 0xa8], eax
test ecx, ecx
movss xmm0, dword [0x55394c]
jne 0x47c88f
mov eax, dword [ebx + 0x58]
cmp eax, 1
je 0x47c4e8
cmp eax, 4
jne 0x47c88f
movd xmm1, dword [ebp + 0xa4]
movss xmm3, dword [ebp + 0xa0]
movss xmm4, dword [0x553948]
movss xmm5, dword [0x4c5d78]
movss xmm6, dword [0x553944]
mov edx, dword [ebp + 0xc]
cvtdq2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm3, xmm3
addsd xmm1, xmm3
xorps xmm3, xmm3
cvtsd2ss xmm3, xmm1
movss xmm1, dword [0x553940]
movss dword [esp + 0x80], xmm1
movss dword [esp + 0x98], xmm1
movss dword [esp + 0xb0], xmm1
movss xmm1, dword [0x55393c]
movss dword [esp + 0x7c], xmm4
movss dword [esp + 0x90], xmm4
movss xmm4, dword [0x553938]
movss dword [esp + 0xc4], xmm1
movss dword [esp + 0xd8], xmm1
movss xmm1, dword [0x553934]
movss dword [esp + 0x94], xmm4
movss dword [esp + 0xa8], xmm4
movss xmm4, dword [0x553930]
movss dword [esp + 0xdc], xmm1
movss dword [esp + 0xf0], xmm1
movss xmm1, dword [0x55392c]
movss dword [esp + 0x9c], xmm5
movss dword [esp + 0xac], xmm4
movss dword [esp + 0xc0], xmm4
movss xmm4, dword [0x553928]
movss dword [esp + 0xe4], xmm5
movss xmm5, dword [0x553924]
movss dword [esp + 0xf4], xmm1
movss dword [esp + 0x108], xmm1
movss xmm1, dword [0x553920]
mov dword [esp + 0x44], 0xbb80
movss dword [esp + 0x48], xmm2
movss dword [esp + 0x4c], xmm0
movss dword [esp + 0x50], xmm2
movss dword [esp + 0x54], xmm0
mov dword [esp + 0x58], 0x5c94
mov dword [esp + 0x5c], 0xac44
movss dword [esp + 0x60], xmm2
movss dword [esp + 0x64], xmm0
movss dword [esp + 0x68], xmm2
movss dword [esp + 0x6c], xmm0
mov dword [esp + 0x70], 0x5514
mov dword [esp + 0x74], 0x7d00
movss dword [esp + 0x78], xmm0
movss dword [esp + 0x84], xmm0
mov dword [esp + 0x88], 0x3db8
mov dword [esp + 0x8c], 0x5dc0
mov dword [esp + 0xa0], 0x2e4a
mov dword [esp + 0xa4], 0x5622
movss dword [esp + 0xb4], xmm0
mov dword [esp + 0xb8], 0x2a8c
mov dword [esp + 0xbc], 0x3e80
movss dword [esp + 0xc8], xmm4
movss dword [esp + 0xcc], xmm0
mov dword [esp + 0xd0], 0x1edf
mov dword [esp + 0xd4], 0x2ee0
movss dword [esp + 0xe0], xmm6
mov dword [esp + 0xe8], 0x1728
mov dword [esp + 0xec], 0x2b11
movss dword [esp + 0xf8], xmm5
movss dword [esp + 0xfc], xmm0
mov dword [esp + 0x100], 0x1546
mov dword [esp + 0x104], 0x1f40
movss dword [esp + 0x10c], xmm1
movss dword [esp + 0x110], xmm4
movss dword [esp + 0x114], xmm0
mov dword [esp + 0x118], 0xf70
mov ecx, 2
lea eax, [esp + 0x78]
mov esi, dword [eax - 4]
cmp edx, esi
jne 0x47c7af
movss xmm4, dword [eax]
xorps xmm1, xmm1
xorps xmm5, xmm5
cvtss2sd xmm1, xmm3
cvtps2pd xmm5, xmm4
comisd xmm5, xmm1
jbe 0x47c7af
xorps xmm1, xmm1
cvtps2pd xmm4, xmm4
cvtss2sd xmm1, xmm3
divsd xmm1, xmm4
movss xmm4, dword [eax + 8]
cvtps2pd xmm4, xmm4
mulsd xmm1, xmm4
cvttsd2si edx, xmm1
xorps xmm4, xmm4
cvtsi2sd xmm4, edx
subsd xmm1, xmm4
cvtpd2ps xmm1, xmm1
mov dword [ebp + 0xa4], edx
movss dword [ebp + 0xa0], xmm1
mov edx, dword [ebp + 0xc]
cmp edx, esi
jl 0x47c7df
movss xmm1, dword [eax]
xorps xmm4, xmm4
cvtps2pd xmm1, xmm1
cvtss2sd xmm4, xmm3
comisd xmm4, xmm1
jb 0x47c7df
movss xmm4, dword [eax + 4]
xorps xmm1, xmm1
cvtss2sd xmm1, xmm3
cvtps2pd xmm4, xmm4
comisd xmm4, xmm1
ja 0x47c7f1
inc ecx
add eax, 0x18
cmp ecx, 9
jl 0x47c756
jmp 0x47c88f
lea eax, [ecx + ecx*2]
add eax, eax
add eax, eax
add eax, eax
cmp dword [ebp + 0xb8], 0
movss xmm4, dword [esp + eax + 0x50]
movss xmm1, dword [esp + eax + 0x54]
movss xmm5, dword [esp + eax + 0x48]
cvtps2pd xmm1, xmm1
cvtps2pd xmm6, xmm4
subsd xmm1, xmm6
cvtss2sd xmm3, xmm3
cvtpd2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
cvtps2pd xmm6, xmm5
subsd xmm3, xmm6
mulsd xmm1, xmm3
movss xmm3, dword [esp + eax + 0x4c]
mov eax, dword [esp + eax + 0x44]
cvtps2pd xmm3, xmm3
cvtps2pd xmm5, xmm5
subsd xmm3, xmm5
cvtpd2ps xmm3, xmm3
cvtss2sd xmm3, xmm3
divsd xmm1, xmm3
mov dword [ebp + 0x10], eax
cvtps2pd xmm3, xmm4
addsd xmm1, xmm3
cvttsd2si ecx, xmm1
xorps xmm3, xmm3
cvtsi2sd xmm3, ecx
subsd xmm1, xmm3
cvtpd2ps xmm1, xmm1
mov dword [ebp + 0xa4], ecx
movss dword [ebp + 0xa0], xmm1
jne 0x47cad0
mov dword [ebp + 0xb8], 0xffffffff
cmp dword [ebp + 0xb8], 0
jne 0x47cad0
mov eax, dword [ebx + 0x58]
movsd xmm1, qword [0x553918]
movsd qword [esp + 0x10], xmm1
cmp eax, 4
ja case.default.0x47c8b6
jmp dword [eax*4 + 0x47dad4]
mov ecx, dword [ebp + 0x60]
push ecx
lea esi, [esp + 0x14]
call fcn.0047a100
movsd xmm1, qword [esp + 0x14]
movss xmm0, dword [0x55394c]
xorps xmm2, xmm2
add esp, 4
jmp 0x47caac
mov edx, dword [ebp + 0xa8]
push edx
jmp 0x47c8c1
mov eax, dword [ebp + 0xa4]
mov dword [esp + 0x18], 0x4c2c
mov dword [esp + 0x1c], 0x4a38
mov dword [esp + 0x20], 0x48a8
mov dword [esp + 0x24], 0x4650
mov dword [esp + 0x28], 0x445c
mov dword [esp + 0x2c], 0x3e80
mov dword [esp + 0x30], 0x3cf0
mov dword [esp + 0x34], 0x3a34
mov dword [esp + 0x38], 0x30d4
mov dword [esp + 0x3c], 0x2710
mov dword [esp + 0x40], 0xf6e
test eax, eax
js 0x47caa4
cmp eax, 9
jg 0x47caa4
movd xmm3, dword [esp + eax*4 + 0x18]
movd xmm1, dword [esp + eax*4 + 0x1c]
jmp 0x47ca83
mov eax, dword [ebp + 0xa4]
mov dword [esp + 0x18], 0x5dc0
mov dword [esp + 0x1c], 0x4c2c
mov dword [esp + 0x20], 0x4844
mov dword [esp + 0x24], 0x4650
mov dword [esp + 0x28], 0x445c
mov dword [esp + 0x2c], 0x4268
mov dword [esp + 0x30], 0x4074
mov dword [esp + 0x34], 0x3cf0
mov dword [esp + 0x38], 0x3b60
mov dword [esp + 0x3c], 0x1c3e
mov dword [esp + 0x40], 0xf6e
test eax, eax
js 0x47ca03
cmp eax, 9
jg 0x47ca03
movd xmm3, dword [esp + eax*4 + 0x18]
movd xmm1, dword [esp + eax*4 + 0x1c]
movss xmm4, dword [ebp + 0xa0]
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm3, xmm3
subsd xmm1, xmm3
cvtps2pd xmm4, xmm4
mulsd xmm1, xmm4
addsd xmm1, xmm3
jmp 0x47caac
movsd xmm1, qword [0x553910]
jmp 0x47caac
mov eax, dword [ebp + 0xa4]
mov dword [esp + 0x18], 0x4c2c
mov dword [esp + 0x1c], 0x4a38
mov dword [esp + 0x20], 0x4844
mov dword [esp + 0x24], 0x4650
mov dword [esp + 0x28], 0x445c
mov dword [esp + 0x2c], 0x4074
mov dword [esp + 0x30], 0x3c8c
mov dword [esp + 0x34], 0x38a4
mov dword [esp + 0x38], 0x30d4
mov dword [esp + 0x3c], 0x251c
mov dword [esp + 0x40], 0xf6e
test eax, eax
js 0x47caa4
cmp eax, 9
jg 0x47caa4
movd xmm3, dword [esp + eax*4 + 0x18]
movd xmm1, dword [esp + eax*4 + 0x1c]
movss xmm4, dword [ebp + 0xa0]
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm3, xmm3
subsd xmm1, xmm3
cvtps2pd xmm4, xmm4
mulsd xmm1, xmm4
addsd xmm1, xmm3
jmp 0x47caac
movsd xmm1, qword [0x553908]
cmp dword [ebp + 0x30], 3
jne 0x47cac6
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x47cabe
cmp eax, 3
jne 0x47cac6
mulsd xmm1, qword [0x543668]
cvttsd2si eax, xmm1
mov dword [ebp + 0xb8], eax
cmp dword [ebp + 0x10], 0
jne 0x47cb00
mov edx, dword [ebp + 0xb8]
mov ecx, dword [ebp + 0xc]
add edx, edx
cmp edx, ecx
jle 0x47caf2
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp + 0xb8], eax
mov edx, dword [ebp + 0xb8]
call fcn.0047a260
mov dword [ebp + 0x10], eax
mov eax, dword [ebx + 0x58]
cmp eax, 1
je 0x47cb21
cmp eax, 4
je 0x47cb21
mov eax, dword [ebp + 0xb8]
cmp eax, 0x5014
jle 0x47cb33
mov eax, 0x5014
jmp 0x47cb33
mov eax, dword [ebp + 0xb8]
cmp eax, 0x5dc0
jle 0x47cb33
mov eax, 0x5dc0
mov esi, dword [ebp + 0x10]
mov dword [ebp + 0xb8], eax
mov ecx, dword [ebp + 0xb8]
mov eax, esi
cdq
sub eax, edx
sar eax, 1
cmp eax, ecx
jl 0x47cb4f
mov eax, ecx
movsd xmm1, qword [0x4c6f50]
mov dword [ebp + 0xb8], eax
cmp dword [ebx + 0x58], 0
jne 0x47cb8d
mov eax, dword [ebx + 0x38]
movd xmm4, dword [ebp + 0x60]
imul eax, esi
xorps xmm3, xmm3
shl eax, 4
cvtsi2sd xmm3, eax
cvtdq2pd xmm4, xmm4
mulsd xmm4, xmm1
divsd xmm3, xmm4
cvtpd2ps xmm3, xmm3
movss dword [ebp + 0x64], xmm3
cmp dword [ebx + 0x58], 3
jne 0x47cbc0
mov ecx, dword [ebx + 0x38]
movd xmm4, dword [ebp + 0xa8]
imul ecx, esi
xorps xmm3, xmm3
shl ecx, 4
cvtsi2sd xmm3, ecx
cvtdq2pd xmm4, xmm4
mulsd xmm4, xmm1
divsd xmm3, xmm4
cvtpd2ps xmm3, xmm3
movss dword [ebp + 0x64], xmm3
mov edx, dword [ebp + 0x80]
mov dword [ebx + 0x80], edx
mov eax, dword [ebp + 0xb8]
mov dword [ebx + 0x24], eax
mov ecx, dword [ebp + 0xbc]
mov dword [ebx + 0x28], ecx
mov edx, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebx + 0x2c], edx
mov eax, dword [ebp + 0x10]
cmp eax, 0x5dc0
setg cl
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x58]
dec eax
inc ecx
mov dword [ebx + 0x3c], ecx
cmp eax, 3
ja case.default.0x47cc05
jmp dword [eax*4 + 0x47dae8]
movss xmm1, dword [0x553900]
mov edx, dword [ebp + 0xa4]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [0x5538fc]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [0x5538f8]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [0x553920]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [0x5538f4]
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [0x5538f0]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [0x5538ec]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [0x5538e8]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [0x5538e4]
movss dword [esp + 0x18], xmm1
movss dword [esp + 0x3c], xmm0
fld dword [esp + edx*4 + 0x18]
fstp dword [ebp + 0x64]
jmp 0x47cce5
mov eax, dword [ebx + 0x38]
imul eax, dword [ebx + 0x30]
movd xmm3, dword [ebp + 0xa8]
shl eax, 4
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
jmp 0x47ccd0
mov ecx, dword [ebx + 0x38]
imul ecx, dword [ebx + 0x30]
movd xmm3, dword [ebp + 0x60]
shl ecx, 4
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
cvtdq2pd xmm3, xmm3
mulsd xmm3, xmm1
divsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
movss dword [ebp + 0x64], xmm0
cmp dword [ebp + 0x30], 4
jne 0x47ccf2
mov dword [ebp + 0x30], 1
mov eax, dword [ebx + 0x28]
mov edx, dword [ebp + 0x30]
movsd xmm0, qword [0x4c6040]
mov dword [ebx + 0xa4], edx
test eax, eax
jle 0x47cd9b
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
mulsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [ebx + 0xf0], xmm1
mov ecx, dword [ebp + 0xc4]
test ecx, ecx
js 0x47cd4a
xorps xmm3, xmm3
add ecx, eax
cvtsi2sd xmm3, ecx
mulsd xmm3, xmm0
cvtpd2ps xmm3, xmm3
movss dword [ebx + 0xf4], xmm3
jmp 0x47cd52
movss dword [ebx + 0xf4], xmm1
movd xmm3, dword [ebx + 0x30]
cvtss2sd xmm1, xmm1
cvtdq2ps xmm3, xmm3
cvtss2sd xmm3, xmm3
divsd xmm1, xmm3
movd xmm3, dword [ebx + 0x30]
cvtpd2ps xmm1, xmm1
movss dword [ebx + 0xf0], xmm1
movss xmm1, dword [ebx + 0xf4]
cvtps2pd xmm1, xmm1
cvtdq2ps xmm3, xmm3
cvtss2sd xmm3, xmm3
divsd xmm1, xmm3
cvtpd2ps xmm1, xmm1
movss dword [ebx + 0xf4], xmm1
jmp 0x47cdab
movss dword [ebx + 0xf0], xmm2
movss dword [ebx + 0xf4], xmm2
mov ecx, dword [ebx + 0x24]
movss dword [ebx + 0xe8], xmm2
movss dword [ebx + 0xec], xmm2
test ecx, ecx
jle 0x47ce74
mov eax, dword [ebx + 0x30]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jge 0x47ce74
xorps xmm1, xmm1
cvtsi2sd xmm1, ecx
mulsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [ebx + 0xec], xmm1
mov eax, dword [ebp + 0xc0]
test eax, eax
js 0x47ce22
sub ecx, eax
xorps xmm3, xmm3
cvtsi2sd xmm3, ecx
mulsd xmm3, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm3
comiss xmm2, xmm0
movss dword [ebx + 0xe8], xmm0
jbe 0x47ce2a
movss dword [ebx + 0xe8], xmm2
jmp 0x47ce2a
movss dword [ebx + 0xe8], xmm1
movss xmm0, dword [ebx + 0xe8]
movd xmm2, dword [ebx + 0x30]
cvtps2pd xmm0, xmm0
cvtdq2ps xmm2, xmm2
cvtss2sd xmm2, xmm2
divsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0xe8], xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
movd xmm1, dword [ebx + 0x30]
cvtdq2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0xec], xmm0
push edi
call fcn.00479b60
mov eax, dword [ebx + 0x30]
push ebx
push eax
call fcn.0047e8e0
add esp, 0xc
cmp dword [ebx + 0x58], 0
mov dword [ebx + 4], eax
jne 0x47cede
cmp dword [ebx + 0x88], 0
je 0x47cea5
mov dword [edi + 0x14b08], 0
jmp 0x47cee8
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx]
mov eax, dword [ebp + 0x60]
push ecx
push edx
push eax
call fcn.0047e6d0
mov dword [ebp + 0x60], eax
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx]
push ecx
push edx
push eax
call fcn.0047e8a0
add esp, 0x18
mov dword [edi + 0x14b08], eax
test eax, eax
jg 0x47cee8
mov dword [edi + 0x14b08], 8
jmp 0x47cee8
mov dword [edi + 0x14b08], 1
push edi
call fcn.004833a0
mov ecx, dword [ebx]
xor eax, eax
add esp, 4
cmp dword [ebx + 0x30], 0x3e80
mov edx, 0x17
setl al
lea eax, [ecx + eax*2]
lea eax, [eax + eax*2]
add eax, dword [ebx + 4]
lea ecx, [edi + 0x5374]
imul eax, eax, 0xcc
mov dword [esp + 0x10], eax
lea eax, [eax + 0x556ee8]
mov esi, dword [eax]
mov dword [ecx], esi
add eax, 4
add ecx, 4
dec edx
jne 0x47cf23
mov edx, dword [edi + 0x53c8]
mov dword [edi + 0x5408], edx
mov esi, dword [edi + 0x53c8]
mov ecx, dword [edi + 0x53cc]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, esi
mov dword [edi + 0x540c], eax
mov esi, dword [edi + 0x53c8]
mov ecx, dword [edi + 0x53cc]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea edx, [esi + ecx*2]
mov dword [edi + 0x5410], edx
mov esi, dword [edi + 0x53c8]
mov ecx, dword [edi + 0x53cc]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [esi + eax*2]
add ecx, eax
mov dword [edi + 0x5414], ecx
mov esi, dword [edi + 0x53c8]
mov ecx, dword [edi + 0x53cc]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [esi + eax*4]
mov dword [edi + 0x5418], ecx
mov esi, dword [edi + 0x53c8]
mov ecx, dword [edi + 0x53cc]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [esi + eax*4]
add edx, eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0x541c], edx
mov dword [edi + 0x5420], 0x240
lea ecx, [edi + 0x53d0]
lea eax, [eax + 0x556f44]
mov edx, 0xe
mov esi, dword [eax]
mov dword [ecx], esi
add eax, 4
add ecx, 4
dec edx
jne 0x47d017
mov edx, dword [edi + 0x5400]
mov dword [edi + 0x5424], edx
mov esi, dword [edi + 0x5400]
mov ecx, dword [edi + 0x5404]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, esi
mov dword [edi + 0x5428], eax
mov esi, dword [edi + 0x5400]
mov ecx, dword [edi + 0x5404]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea edx, [esi + ecx*2]
mov dword [edi + 0x542c], edx
mov esi, dword [edi + 0x5400]
mov ecx, dword [edi + 0x5404]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [esi + eax*2]
add ecx, eax
mov dword [edi + 0x5430], ecx
mov esi, dword [edi + 0x5400]
mov ecx, dword [edi + 0x5404]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [esi + eax*4]
mov dword [edi + 0x5434], ecx
mov esi, dword [edi + 0x5400]
mov ecx, dword [edi + 0x5404]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [esi + eax*4]
add edx, eax
mov dword [edi + 0x5438], edx
mov dword [edi + 0x543c], 0xc0
cmp dword [ebx + 0x3c], 2
jne 0x47d10f
mov edx, dword [ebx + 0x38]
dec edx
neg edx
sbb edx, edx
and edx, 0xf
add edx, 0x15
mov dword [ebx + 8], edx
jmp 0x47d122
xor eax, eax
cmp dword [ebx + 0x38], 1
setne al
lea eax, [eax*8 + 0xd]
mov dword [ebx + 8], eax
cmp dword [ebx + 0x90], 0
je 0x47d12f
add dword [ebx + 8], 2
lea eax, [edi + 0x9b50]
mov ecx, 2
lea ebx, [ebx]
mov edx, dword [ebx + 0x3c]
imul edx, dword [ebx + 0x38]
imul edx, edx, 0x2bc
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movss dword [eax - 4], xmm0
mov edx, dword [ebx + 0x3c]
imul edx, dword [ebx + 0x38]
imul edx, edx, 0x2bc
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movss dword [eax], xmm0
mov edx, dword [ebx + 0x3c]
imul edx, dword [ebx + 0x38]
imul edx, edx, 0x2bc
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movss dword [eax + 4], xmm0
mov edx, dword [ebx + 0x3c]
imul edx, dword [ebx + 0x38]
imul edx, edx, 0x2bc
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movss dword [eax + 8], xmm0
mov edx, dword [ebx + 0x3c]
imul edx, dword [ebx + 0x38]
imul edx, edx, 0x2bc
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movss dword [eax + 0xc], xmm0
mov edx, dword [ebx + 0x3c]
imul edx, dword [ebx + 0x38]
imul edx, edx, 0x2bc
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movss dword [eax + 0x10], xmm0
mov edx, dword [ebx + 0x3c]
imul edx, dword [ebx + 0x38]
imul edx, edx, 0x2bc
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movss dword [eax + 0x14], xmm0
mov edx, dword [ebx + 0x3c]
imul edx, dword [ebx + 0x38]
imul edx, edx, 0x2bc
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movss dword [eax + 0x18], xmm0
add eax, 0x20
dec ecx
jne 0x47d140
mov esi, 3
lea eax, [edi + 0x9b8c]
mov ecx, esi
mov edi, edi
mov edx, dword [ebx + 0x3c]
imul edx, dword [ebx + 0x38]
imul edx, edx, 0x2bc
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movss dword [eax], xmm0
add eax, 4
dec ecx
jne 0x47d220
cmp dword [ebp + 0xdc], 0xffffffff
jne 0x47d251
mov dword [ebp + 0xdc], 4
mov eax, dword [ebx + 0x58]
dec eax
je 0x47d30f
dec eax
je 0x47d2ad
sub eax, 2
je 0x47d30f
mov dword [edi + 0x14c64], 0
cmp dword [ebp + 0x2c], 0
jge 0x47d27a
mov dword [ebp + 0x2c], esi
cmp dword [ebx + 0x58], 0
jne 0x47d28d
mov eax, dword [ebp + 0x60]
push eax
push ebp
call fcn.0047dde0
add esp, 8
mov ecx, dword [ebp + 0xa8]
push 0
push ecx
push ebp
call fcn.0048d9b0
mov edx, dword [ebx + 0x58]
add esp, 0xc
mov dword [ebp + 0x9c], edx
jmp 0x47d395
mov eax, 0x32
sub eax, dword [ebp + 0xa4]
push 0
lea eax, [eax + eax*4]
add eax, eax
push eax
push ebp
call fcn.0048d9b0
add esp, 0xc
cmp dword [ebp + 0x8c], 0
je 0x47d2de
mov dword [edi + 0x14c64], 0
jmp 0x47d2f0
xor ecx, ecx
cmp dword [ebx + 0x30], 0xabe0
setg cl
mov dword [edi + 0x14c64], ecx
mov eax, 6
cmp dword [ebp + 0x2c], eax
jle 0x47d2fd
mov dword [ebp + 0x2c], eax
cmp dword [ebp + 0x2c], 0
jge 0x47d395
mov dword [ebp + 0x2c], esi
jmp 0x47d395
cmp dword [ebp + 0x7c], 0
jge 0x47d31c
mov dword [ebp + 0x7c], 2
cmp dword [ebp + 0xf4], 0
jge 0x47d32f
mov dword [ebp + 0xf4], 0
mov eax, 0x32
sub eax, dword [ebp + 0xa4]
push 0
lea edx, [eax + eax*4]
add edx, edx
push edx
push ebp
call fcn.0048d9b0
add esp, 0xc
cmp dword [ebp + 0x2c], 0
jge 0x47d354
mov dword [ebp + 0x2c], esi
cmp dword [ebp + 0x2c], 5
jge 0x47d361
mov dword [ebp + 0x2c], 0
mov eax, 7
cmp dword [ebp + 0x2c], eax
jle 0x47d36e
mov dword [ebp + 0x2c], eax
cmp dword [ebp + 0x8c], 0
je 0x47d383
mov dword [edi + 0x14c64], 0
jmp 0x47d395
xor eax, eax
cmp dword [ebx + 0x30], 0xabe0
setg al
mov dword [edi + 0x14c64], eax
fld dword [ebp + 0xc8]
fstp dword [edi + 0x14bb0]
fld dword [ebp + 0xcc]
fstp dword [edi + 0x14bb4]
cmp dword [ebp + 0x100], 0
je 0x47d402
movss xmm1, dword [ebp + 0x104]
movss xmm0, dword [edi + 0x14bb0]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + 0x14bb0], xmm0
movss xmm0, dword [edi + 0x14bb4]
movss xmm1, dword [ebp + 0x104]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [edi + 0x14bb4], xmm0
cmp dword [ebx + 0x58], 0
je 0x47d517
mov esi, 0x3e80
mov dword [ebx + 0x60], 1
mov dword [ebx + 0x64], 0xe
cmp dword [ebx + 0x30], esi
jge 0x47d42b
mov dword [ebx + 0x64], 8
mov eax, dword [ebp + 0xac]
test eax, eax
je 0x47d466
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx]
push ecx
push edx
push eax
call fcn.0047e6d0
mov dword [ebp + 0xac], eax
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx]
push ecx
push edx
push eax
call fcn.0047e8a0
add esp, 0x18
mov dword [ebx + 0x60], eax
test eax, eax
jns 0x47d466
mov dword [ebx + 0x60], 1
mov eax, dword [ebp + 0xb0]
test eax, eax
je 0x47d4ac
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx]
push ecx
push edx
push eax
call fcn.0047e6d0
mov dword [ebp + 0xb0], eax
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx]
push ecx
push edx
push eax
call fcn.0047e8a0
add esp, 0x18
mov dword [ebx + 0x64], eax
test eax, eax
jns 0x47d4ac
xor eax, eax
cmp dword [ebx + 0x30], esi
setge al
dec eax
and eax, 0xfffffffa
add eax, 0xe
mov dword [ebx + 0x64], eax
mov ecx, dword [ebx]
shl ecx, 4
add ecx, dword [ebx + 0x60]
mov edx, dword [ecx*4 + 0x556998]
mov dword [ebp + 0xac], edx
mov eax, dword [ebx]
shl eax, 4
add eax, dword [ebx + 0x64]
mov ecx, dword [eax*4 + 0x556998]
mov dword [ebp + 0xb0], ecx
mov edx, dword [ebx]
mov ecx, dword [ebp + 0xa8]
shl edx, 4
add edx, dword [ebx + 0x64]
mov eax, dword [edx*4 + 0x556998]
cmp eax, ecx
jl 0x47d4f1
mov eax, ecx
mov dword [ebp + 0xa8], eax
mov ecx, dword [ebx]
shl ecx, 4
add ecx, dword [ebx + 0x60]
mov ecx, dword [ecx*4 + 0x556998]
cmp ecx, eax
jle 0x47d50c
mov eax, ecx
mov dword [ebp + 0xa8], eax
mov esi, 3
mov edx, dword [ebp + 0x98]
mov dword [ebx + 0x54], edx
mov eax, dword [ebp + 0x24]
mov dword [ebx + 0x8c], eax
mov ecx, dword [ebp + 0x50]
mov dword [edi + 0x14c68], ecx
mov edx, dword [ebp + 0x54]
mov dword [ebx + 0xc], edx
mov eax, dword [ebp + 0x58]
mov dword [ebx + 0x10], eax
mov ecx, dword [ebp + 0x5c]
mov dword [ebx + 0x14], ecx
mov edx, dword [ebp + 0x60]
mov dword [ebx + 0x68], edx
mov eax, dword [ebp + 0xa8]
mov dword [ebx + 0x5c], eax
fld dword [ebp + 0x64]
mov edx, ebp
fstp dword [ebx + 0xe4]
call fcn.0047a3d0
mov eax, dword [ebp + 0xe8]
test eax, eax
jns 0x47d577
mov ecx, dword [edi + 0x14f28]
mov dword [ecx], esi
jmp 0x47d57f
mov edx, dword [edi + 0x14f28]
mov dword [edx], eax
fld dword [ebp + 0xec]
fdiv qword [0x4cb6a8]
fld qword [0x4c5be0]
fxch st(1)
call fcn.004aabb0
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov eax, dword [edi + 0x14f28]
fstp dword [eax + 4]
xor esi, esi
cmp dword [ebp + 0xf0], 0xffffffff
jne 0x47d5ba
mov dword [ebp + 0xf0], esi
cmp dword [ebp + 0xf0], esi
jne 0x47d5db
mov eax, dword [ebx + 0xa4]
cmp eax, 1
je 0x47d5d1
cmp eax, esi
jne 0x47d5db
mov dword [ebp + 0xf0], 1
mov ecx, dword [ebp + 0xf0]
push ebp
mov dword [ebx + 0xa8], ecx
call fcn.0047dc50
add esp, 4
test eax, eax
jns 0x47d5ff
push 1
push ebp
call fcn.0047dc20
add esp, 8
push ebp
call fcn.0047dca0
add esp, 4
test eax, eax
jns 0x47d616
push esi
push ebp
call fcn.0047dc70
add esp, 8
push ebp
call fcn.0047e160
fldz
add esp, 4
fcompi st(1)
fstp st(0)
jbe 0x47d63b
xorps xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push ebp
call fcn.0047e130
add esp, 0xc
push ebp
call fcn.0047dd20
or eax, 1
push eax
push ebp
call fcn.0047dcf0
add esp, 0xc
cmp dword [ebp + 0xdc], esi
jge 0x47d660
mov dword [ebp + 0xdc], 4
xorps xmm0, xmm0
comiss xmm0, dword [ebp + 0xe0]
jbe 0x47d67c
movss xmm1, dword [0x4c918c]
movss dword [ebp + 0xe0], xmm1
comiss xmm0, dword [ebp + 0xf8]
jbe 0x47d68d
movss dword [ebp + 0xf8], xmm0
cmp dword [ebp + 0xf4], esi
jge 0x47d69f
mov dword [ebp + 0xf4], 1
fld dword [ebp + 0xf8]
xorps xmm1, xmm1
fstp dword [ebx + 0xac]
fld dword [ebp + 0xfc]
fstp dword [ebx + 0xb0]
movss xmm0, dword [ebp + 0xe4]
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x10], xmm0
fld dword [esp + 0x10]
fmul qword [0x549250]
movss dword [ebx + 0xb4], xmm0
fld qword [0x4c5be0]
fxch st(1)
call fcn.004aabb0
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [ebx + 0xb8]
fld dword [ebp + 0xe0]
fstp dword [ebx + 0xbc]
mov edx, dword [ebp + 0xdc]
mov dword [ebx + 0xc0], edx
mov eax, dword [ebp + 0xd0]
mov dword [ebx + 0xc4], eax
mov ecx, dword [ebp + 0xd4]
mov dword [ebx + 0xc8], ecx
mov edx, dword [ebp + 0xd8]
mov dword [ebx + 0xcc], edx
mov eax, dword [ebp + 0x84]
mov dword [ebx + 0x44], eax
mov ecx, dword [ebp + 0x88]
mov dword [ebx + 0x48], ecx
mov edx, dword [ebp + 0xf4]
mov ecx, 1
mov dword [ebx + 0x4c], edx
cmp dword [ebx + 0xa4], ecx
jne 0x47d772
mov eax, dword [ebp + 0x94]
and eax, 2
mov dword [ebx + 0x50], eax
jmp 0x47d775
mov dword [ebx + 0x50], esi
mov edx, dword [ebp + 0x94]
movss xmm2, dword [0x5538e0]
movsd xmm3, qword [0x5538d8]
sar edx, 2
and edx, 0x3f
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
comiss xmm0, xmm2
movss dword [ebx + 0xd8], xmm0
jb 0x47d7b8
cvtps2pd xmm0, xmm0
subsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0xd8], xmm0
movss xmm0, dword [ebx + 0xd8]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x549240]
mulsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [ebx + 0xd8], xmm1
mov eax, dword [ebp + 0x94]
sar eax, 8
and eax, 0x3f
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
comiss xmm1, xmm2
movss dword [ebx + 0xd4], xmm1
jb 0x47d80e
cvtps2pd xmm1, xmm1
subsd xmm1, xmm3
cvtpd2ps xmm1, xmm1
movss dword [ebx + 0xd4], xmm1
movss xmm1, dword [ebx + 0xd4]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [ebx + 0xd4], xmm1
mov edx, dword [ebp + 0x94]
sar edx, 0xe
and edx, 0x3f
xorps xmm1, xmm1
cvtsi2ss xmm1, edx
comiss xmm1, xmm2
movss dword [ebx + 0xdc], xmm1
jb 0x47d85c
cvtps2pd xmm1, xmm1
subsd xmm1, xmm3
cvtpd2ps xmm1, xmm1
movss dword [ebx + 0xdc], xmm1
movss xmm1, dword [ebx + 0xdc]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [ebx + 0xdc], xmm1
mov eax, dword [ebp + 0x94]
sar eax, 0x14
and eax, 0x3f
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
comiss xmm1, xmm2
movss dword [ebx + 0xe0], xmm1
jb 0x47d8aa
cvtps2pd xmm1, xmm1
subsd xmm1, xmm3
cvtpd2ps xmm1, xmm1
movss dword [ebx + 0xe0], xmm1
cmp dword [ebx + 0x34], 2
movss xmm1, dword [ebx + 0xe0]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm1
movss xmm1, dword [ebx + 0xdc]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0xe0], xmm0
movss xmm0, dword [ebp + 0x14]
movss xmm2, dword [ebp + 0x18]
cvtps2pd xmm1, xmm0
mulsd xmm1, qword [0x4c94e0]
cvtps2pd xmm5, xmm2
cvtpd2ps xmm1, xmm1
movaps xmm4, xmm1
movaps xmm3, xmm0
cvtps2pd xmm2, xmm2
cvtss2sd xmm4, xmm4
mulsd xmm4, xmm2
movss xmm2, dword [ebp + 0x1c]
cvtss2sd xmm3, xmm3
mulsd xmm3, xmm5
cvtps2pd xmm5, xmm2
cvtss2sd xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm2, xmm2
mulsd xmm1, xmm5
mulsd xmm0, xmm2
cvtpd2ps xmm3, xmm3
cvtsd2ss xmm4, xmm4
cvtpd2ps xmm1, xmm1
cvtpd2ps xmm0, xmm0
jne 0x47d98d
cmp dword [ebx + 0x38], ecx
jne 0x47d98d
xorps xmm2, xmm2
cvtss2sd xmm2, xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm3
addsd xmm2, xmm1
movsd xmm1, qword [0x4c5b80]
mulsd xmm2, xmm1
xorps xmm3, xmm3
cvtpd2ps xmm3, xmm2
cvtss2sd xmm0, xmm0
xorps xmm2, xmm2
cvtss2sd xmm2, xmm4
addsd xmm0, xmm2
mulsd xmm0, xmm1
xorps xmm4, xmm4
cvtpd2ps xmm4, xmm0
xorps xmm0, xmm0
movaps xmm1, xmm0
movss dword [ebx + 0xf8], xmm3
movss dword [ebx + 0xfc], xmm4
movss dword [ebx + 0x100], xmm1
movss dword [ebx + 0x104], xmm0
mov dword [edi + 0x9b98], esi
mov dword [edi + 0x9b9c], esi
cmp dword [ebx + 0x58], esi
jne 0x47d9dc
mov eax, dword [ebx]
add eax, ecx
imul eax, dword [ebx + 0x68]
imul eax, eax, 0x11940
cdq
idiv dword [ebx + 0x30]
mov dword [edi + 0x9b98], edx
mov dword [edi + 0x9b9c], edx
push ebp
call fcn.0047ba60
push edi
call fcn.0048a720
push ebp
call fcn.00489340
mov ecx, dword [ebp + 0x7c]
push ecx
push ebx
call fcn.004819a0
mov dword [ebx + 0x84], eax
mov edx, dword [ebp + 0x3c]
mov dword [ebx + 0x70], edx
mov eax, dword [ebp + 0x40]
add esp, 0x14
mov dword [ebx + 0x78], eax
cmp eax, esi
je 0x47da18
mov dword [ebx + 0x74], 1
cmp edx, esi
je 0x47da36
mov eax, dword [ebx + 0x30]
mov ecx, dword [edi + 0x14eac]
push eax
push ecx
call fcn.0047f930
add esp, 8
test eax, eax
jne 0x47da36
mov dword [ebx + 0x70], esi
cmp dword [ebx + 0x78], esi
pop ebx
je 0x47da95
cmp dword [ebp + 0x28], esi
jne 0x47da95
mov eax, dword [edi + 0x14f34]
cmp eax, esi
je 0x47da54
push eax
call fcn.00484bb0
add esp, 4
call fcn.00484b90
mov dword [edi + 0x14f34], eax
mov edx, dword [ebp + 0x118]
push edx
push eax
call fcn.00484c30
mov eax, dword [ebp + 0x114]
mov ecx, dword [edi + 0x14f34]
push eax
push ecx
call fcn.00484c50
mov edx, dword [ebp + 0x110]
mov eax, dword [edi + 0x14f34]
push edx
push eax
call fcn.00484c70
add esp, 0x18
pop esi
mov dword [edi + 4], 1
pop edi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x10c]
xor ecx, esp
call fcn.004a7314
add esp, 0x110
ret
mov ecx, dword [esp + 0x118]
pop esi
pop edi
pop ebp
xor ecx, esp
or eax, 0xffffffff
call fcn.004a7314
add esp, 0x110
ret