Function at 0x4619c0
Capabilities:
Check os version

Disassembly:
push esi
pushfd
mov esi, dword [0x448906]
xor esi, dword [0x1560868]
popfd
xchg dword [esp], esi
jmp 0x4619c7
push 0xffffffffffffffff
jmp 0x407465
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10c
push ebx
push ebp
push esi
push edi
xor edi, edi
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], edi
fld dword [esp + 0x140]
fsub dword [esp + 0x134]
mov dword [esp + 0x124], edi
fld dword [esp + 0x13c]
fsub dword [esp + 0x130]
fld dword [esp + 0x138]
fsub dword [esp + 0x12c]
fstp dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x2c], ecx
fst dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
fld st(1)
lea ecx, [esp + 0x2c]
fstp dword [esp + 0x70]
mov dword [esp + 0x30], edx
fld dword [esp + 0x68]
fmul dword [esp + 0x68]
fld st(1)
fmul st(2)
faddp st(1)
fld st(2)
fmul st(3)
faddp st(1)
fstp st(2)
fstp st(0)
fsqrt
fstp dword [esp + 0xbc]
fld dword [esp + 0x134]
fadd dword [esp + 0x140]
fld dword [esp + 0x130]
fadd dword [esp + 0x13c]
fld dword [esp + 0x12c]
fadd dword [esp + 0x138]
fstp dword [esp + 0xd4]
fxch st(1)
fmul dword [0x858b8c]
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x24]
fmul dword [0x858b8c]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], eax
fst dword [esp + 0x20]
fld dword [esp + 0xd4]
fmul dword [0x858b8c]
fstp dword [esp + 0xd4]
fstp dword [esp + 0xd8]
call fcn.0059c910
mov ecx, dword [esp + 0x30]
fld dword [esp + 0x2c]
mov dword [esp + 0x5c], ecx
fchs
lea ecx, [esp + 0x5c]
fstp dword [esp + 0x60]
mov dword [esp + 0x64], edi
call fcn.0059c910
or esi, 0xffffffff
lea edx, [esp + 0xe0]
push esi
push edx
call fcn.0056e010
fld dword [eax + 8]
fsub dword [esp + 0x2c]
add esp, 8
fld dword [eax + 4]
fsub dword [esp + 0x20]
fld dword [eax]
fsub dword [esp + 0xd4]
fxch st(2)
fmul dword [esp + 0x64]
fxch st(2)
fmul dword [esp + 0x5c]
faddp st(2)
fmul dword [esp + 0x60]
faddp st(1)
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x461b72
fld dword [esp + 0x5c]
fmul dword [0x858c1c]
fstp dword [esp + 0x5c]
fld dword [esp + 0x60]
fmul dword [0x858c1c]
fstp dword [esp + 0x60]
fld dword [esp + 0x64]
fmul dword [0x858c1c]
fstp dword [esp + 0x64]
mov ebx, dword [esp + 0x144]
cmp ebx, edi
je 0x461b9c
call fcn.006144b0
mov ebp, eax
cmp ebp, esi
mov dword [esp + 0x20], ebp
jne 0x461c2d
mov dword [esp + 0x124], esi
jmp 0x4629b4
push esi
call fcn.0056e230
add esp, 4
mov ecx, eax
call fcn.00561f80
test al, al
je 0x461bb7
mov ebp, 0x1b1
jmp 0x461bf8
push esi
call fcn.0056e230
add esp, 4
mov ecx, eax
call fcn.00561f60
test al, al
je 0x461bd2
mov ebp, 0x1ea
jmp 0x461bf8
push esi
call fcn.0056e230
add esp, 4
mov ecx, eax
call fcn.00561f40
test al, al
je 0x461bed
mov ebp, 0x1ab
jmp 0x461bf8
push edi
call fcn.00407c50
add esp, 4
mov ebp, eax
lea eax, [ebp + ebp*4]
cmp byte [eax*4 + 0x8e4cd0], 1
mov dword [esp + 0x20], ebp
je 0x461c19
push edi
call fcn.00407c50
mov ebp, eax
add esp, 4
mov dword [esp + 0x20], ebp
cmp ebp, 0x20b
jne 0x461c2d
mov dword [esp + 0x124], esi
jmp 0x4629b4
mov ecx, dword [ebp*4 + 0xa9b0c8]
mov eax, dword [ecx + 0x14]
mov edx, dword [eax]
mov dword [esp + 0xc0], edx
mov edx, dword [eax + 4]
mov dword [esp + 0xc4], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xc8], eax
mov ecx, dword [ecx + 0x14]
add ecx, 0xc
cmp ebx, edi
mov edx, dword [ecx]
mov dword [esp + 0x68], edx
fld dword [esp + 0x68]
fsub dword [esp + 0xc0]
mov eax, dword [ecx + 4]
mov dword [esp + 0x6c], eax
mov ecx, dword [ecx + 8]
fadd dword [0x858ca0]
mov dword [esp + 0x70], ecx
fstp dword [esp + 0x24]
fld dword [esp + 0x6c]
fsub dword [esp + 0xc4]
fadd dword [0x858cc4]
fstp dword [esp + 0x10]
je 0x461caa
fld dword [esp + 0x10]
fadd dword [0x858b8c]
fstp dword [esp + 0x10]
mov edx, dword [esp + 0xbc]
xor ebx, ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x1c], edx
xor esi, esi
lea ecx, [ecx]
cmp ebp, 0x1b1
je 0x461ce1
cmp dword [esp + 0x144], edi
jne 0x461ce1
call fcn.00821b1e
and al, 1
mov byte [esp + esi + 0xcc], al
jmp 0x461ce9
mov byte [esp + esi + 0xcc], 0
mov al, byte [esp + esi + 0xcc]
fld dword [esp + 0x1c]
test al, al
je 0x461d0d
fcomp dword [esp + 0x24]
fnstsw ax
test ah, 1
jne 0x461d30
fld dword [esp + 0x1c]
fsub dword [esp + 0x24]
jmp 0x461d20
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 1
jne 0x461d30
fld dword [esp + 0x1c]
fsub dword [esp + 0x10]
inc ebx
fstp dword [esp + 0x1c]
cmp ebx, 5
je 0x461d30
inc esi
cmp esi, 5
jl 0x461cc0
cmp ebx, edi
lea eax, [ebx + 1]
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x28], edi
fdivr dword [esp + 0x1c]
fst dword [esp + 0x18]
jle 0x4624df
fld dword [esp + 0x10]
mov edi, dword [esp + 0x144]
fmul dword [0x858b8c]
xor ebp, ebp
fst dword [esp + 0x1c]
fadd st(1)
fstp dword [esp + 0x14]
fstp st(0)
mov ecx, dword [esp + 0x28]
mov al, byte [esp + ecx + 0xcc]
xor bl, bl
test al, al
je 0x461e33
fld dword [esp + 0x24]
mov edx, dword [esp + 0x5c]
fmul dword [0x858b8c]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x84], edx
fadd dword [esp + 0x18]
mov edx, eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
fstp dword [esp + 0x18]
mov dword [esp + 0x74], edx
fld dword [esp + 0x5c]
mov dword [esp + 0x7c], 0
fchs
mov dword [esp + 0x94], 0
fstp dword [esp + 0x78]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0x3f800000
call fcn.00821b1e
and eax, 0xff
cmp edi, ebp
je 0x461e1a
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fsub dword [0x858bf4]
fmul dword [0x859ce0]
jmp 0x461f46
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fsub dword [0x858bf4]
fmul dword [0x858f44]
jmp 0x461f46
cmp edi, ebp
fld dword [esp + 0x1c]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
je 0x461e53
call fcn.00821b1e
and eax, 0xff
cmp eax, 0x40
setl bl
test bl, bl
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
je 0x461eb1
fld dword [esp + 0x30]
mov dword [esp + 0x74], 0
fchs
mov dword [esp + 0x78], 0
fstp dword [esp + 0x94]
mov dword [esp + 0x7c], 0x3f800000
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], 0
jmp 0x461eec
fld dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
fchs
mov dword [esp + 0x74], edx
fstp dword [esp + 0x78]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0x3f800000
call fcn.00821b1e
test al, 1
je 0x461f0e
test bl, bl
lea ecx, [esp + 0x74]
push 0x40490fdb
je 0x461f09
call fcn.0059b2c0
jmp 0x461f0e
call fcn.0059b390
call fcn.00821b1e
and eax, 0xff
cmp edi, ebp
je 0x461f32
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fsub dword [0x858bf4]
fmul dword [0x859cdc]
jmp 0x461f46
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fsub dword [0x858bf4]
fmul dword [0x859cd8]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x74]
push eax
call fcn.0059b390
fld dword [esp + 0x34]
fmul dword [esp + 0x18]
fld dword [esp + 0x18]
fmul dword [esp + 0x30]
fld dword [esp + 0x18]
fmul dword [esp + 0x2c]
fstp dword [esp + 0xf8]
fld dword [esp + 0x134]
fadd st(2)
fstp dword [esp + 0x10]
fld dword [esp + 0x130]
mov ecx, dword [esp + 0x10]
fadd st(1)
push ecx
lea ecx, [esp + 0x78]
fstp dword [esp + 0x48]
mov edx, dword [esp + 0x48]
push edx
fstp st(0)
fstp st(0)
fld dword [esp + 0x100]
fadd dword [esp + 0x134]
fstp dword [esp + 0xf4]
mov eax, dword [esp + 0xf4]
push eax
call fcn.0059af80
fld dword [esp + 0xac]
test bl, bl
je 0x461fd9
fsub dword [esp + 0xc0]
jmp 0x461fe0
fsub dword [esp + 0xc8]
fadd dword [0x858c24]
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0xc4]
fstp dword [esp + 0xb0]
push edx
fld dword [esp + 0x1c]
lea eax, [esp + 0xe8]
fadd dword [esp + 0x20]
push eax
fstp dword [esp + 0x24]
call fcn.0059c810
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x54], ecx
fld dword [esp + 0x54]
fadd dword [esp + 0xb0]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0x80]
fstp dword [esp + 0x54]
push ecx
fld dword [esp + 0x5c]
lea edx, [esp + 0x78]
fadd dword [esp + 0xb8]
push edx
lea eax, [esp + 0x118]
push eax
fstp dword [esp + 0x64]
fld dword [esp + 0x68]
fadd dword [esp + 0xc4]
fstp dword [esp + 0x68]
call fcn.0059c810
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], ecx
fld dword [esp + 0x50]
fadd dword [esp + 0xbc]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], eax
add esp, 0xc
fstp dword [esp + 0x44]
mov edx, dword [esp + 0x44]
fld dword [esp + 0x48]
mov ecx, esp
fadd dword [esp + 0xb4]
mov dword [ecx], edx
sub esp, 0xc
fstp dword [esp + 0x54]
mov eax, dword [esp + 0x54]
fld dword [esp + 0x58]
mov dword [ecx + 4], eax
fadd dword [esp + 0xc4]
mov eax, esp
fstp dword [esp + 0x58]
mov edx, dword [esp + 0x58]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [eax], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.00461020
add esp, 0x18
test al, al
je 0x4624c6
cmp edi, ebp
je 0x4621ef
test bl, bl
jne 0x462110
call fcn.00821b1e
and eax, 0xff
cmp eax, 0x40
jge 0x4621ef
push 0x17c
call fcn.005a1ee0
add esp, 4
mov dword [esp + 0x44], eax
cmp eax, ebp
mov byte [esp + 0x124], 1
je 0x462142
movzx edx, word [0x8cd580]
push 1
push edx
mov ecx, eax
call fcn.005a1d70
mov esi, eax
jmp 0x462144
xor esi, esi
mov ecx, dword [esi + 0x14]
lea eax, [esp + 0x74]
push eax
mov byte [esp + 0x128], 0
call fcn.0059bbc0
fld dword [esp + 0xac]
mov eax, dword [esi + 0x14]
fld dword [esp + 0xa8]
cmp eax, ebp
mov ecx, dword [esp + 0xa4]
je 0x462186
mov dword [eax + 0x30], ecx
mov edx, dword [esi + 0x14]
fstp dword [edx + 0x34]
mov eax, dword [esi + 0x14]
fstp dword [eax + 0x38]
jmp 0x46218f
fstp dword [esi + 8]
mov dword [esi + 4], ecx
fstp dword [esi + 0xc]
mov edx, dword [esi]
push ebp
mov ecx, esi
call dword [edx + 0x10]
inc word [0xbb4a70]
mov byte [esi + 0x13c], 3
mov eax, dword [0xb7cb84]
add eax, 0x927c0
push esi
mov dword [esi + 0x150], eax
call fcn.00563220
add esp, 4
push 2
push 0xea60
push 1
push 0x40333333
push ebp
push esi
mov ecx, 0xb71f80
call fcn.0053a050
mov esi, dword [esi + 0x164]
cmp esi, ebp
je 0x4624c6
mov byte [esi + 0x21], 0x5c
jmp 0x4624c6
push 0x988
call fcn.006e2d50
add esp, 4
mov dword [esp + 0x44], eax
cmp eax, ebp
mov byte [esp + 0x124], 2
je 0x462220
mov ecx, dword [esp + 0x20]
push 1
push 1
push ecx
mov ecx, eax
call fcn.006b0a90
mov esi, eax
jmp 0x462222
xor esi, esi
mov dl, byte [esi + 0x36]
mov eax, dword [esi]
and dl, 7
or dl, 0x20
mov ecx, esi
mov byte [esp + 0x124], 0
mov byte [esi + 0x36], dl
call dword [eax + 0xd4]
fsub dword [0x858cc8]
lea edx, [esp + 0x74]
push edx
fadd dword [esp + 0xb0]
fstp dword [esp + 0xb0]
mov ecx, dword [esi + 0x14]
call fcn.0059bbc0
mov ecx, esi
call fcn.006af420
mov eax, dword [esi]
push ebp
mov ecx, esi
call dword [eax + 0x10]
mov eax, dword [esi + 0x18]
cmp eax, ebp
je 0x462294
mov eax, dword [eax + 4]
mov ecx, dword [esi + 0x14]
add eax, 0x10
cmp ecx, ebp
push eax
je 0x46228c
call fcn.0059ad70
jmp 0x462294
lea ecx, [esi + 4]
call fcn.0054ef40
push esi
mov dword [esi + 0x4f8], 1
call fcn.0042f5a0
mov dl, byte [esi + 0x42c]
mov cl, byte [esi + 0x428]
or dl, 0x40
and cl, 0xe7
add esp, 4
xor bl, bl
cmp edi, ebp
mov byte [esi + 0x3ba], 0
mov byte [esi + 0x3bb], 0
mov byte [esi + 0x3b7], 0
mov byte [esi + 0x3b8], 0
mov dword [esi + 0x3c8], ebp
mov byte [esi + 0x3d0], 0
mov byte [esi + 0x42c], dl
mov byte [esi + 0x428], cl
je 0x462342
call fcn.00821b1e
and eax, 0xffff
mov dword [esp + 0x44], eax
fild dword [esp + 0x44]
fmul dword [0x858b14]
fmul dword [0x858b90]
call fcn.00821b40
test eax, eax
mov ecx, esi
push 1
jne 0x462326
call fcn.006a27f0
jmp 0x46235d
mov edx, dword [esi]
push 1
push 1
push 1
call dword [edx + 0xa8]
add dword [esi + 0x4d8], 0xf4240
mov bl, 1
jmp 0x46235d
mov ecx, esi
call fcn.006d8470
test al, al
je 0x46235d
call fcn.00821b1e
test al, 1
je 0x46235d
or byte [esi + 0x42d], 0x80
mov eax, dword [esi + 0x14]
fld dword [eax + 0x28]
fcomp dword [0x859cd4]
fnstsw ax
test ah, 0x41
jne 0x4624be
mov eax, dword [esi + 0x18]
push ebp
push eax
call fcn.00732b00
push esi
call fcn.00563220
or byte [esi + 0x42a], 0x10
mov eax, dword [0xb7cb84]
add eax, 0x1b58
mov dword [esi + 0x4d0], eax
mov eax, dword [esp + 0x64]
add esp, 0xc
cmp eax, 3
jle 0x4623b0
mov byte [esi + 0x4ae], 1
jmp 0x4623b7
mov byte [esi + 0x4ae], 2
mov ecx, dword [esp + 0x28]
mov al, byte [esp + ecx + 0xcc]
test al, al
je 0x46242a
push 2
mov byte [esi + 0x4ad], 2
call fcn.006c26f0
mov ecx, dword [esi + eax*4 + 0x648]
add esp, 4
cmp ecx, ebp
je 0x4623f4
mov edx, dword [esi]
push 1
push 0x3f800000
push 2
push eax
push ebp
mov ecx, esi
call dword [edx + 0x6c]
cmp byte [esi + 0x4ae], 1
jbe 0x462490
push 3
call fcn.006c26f0
mov ecx, dword [esi + eax*4 + 0x648]
add esp, 4
cmp ecx, ebp
je 0x462490
mov edx, dword [esi]
push 1
push 0x3f800000
push 3
push eax
push ebp
mov ecx, esi
call dword [edx + 0x6c]
jmp 0x462490
mov eax, dword [esi + 0x14]
cmp eax, ebp
lea edi, [eax + 0x30]
jne 0x462437
lea edi, [esi + 4]
lea eax, [esp + 0x110]
push 0xffffffffffffffff
push eax
call fcn.0056e010
fld dword [edi + 8]
fsub dword [eax + 8]
add esp, 8
fld dword [edi + 4]
fsub dword [eax + 4]
fld dword [edi]
mov edi, dword [esp + 0x144]
fsub dword [eax]
mov eax, dword [esi + 0x14]
fxch st(1)
fmul dword [eax + 4]
fxch st(2)
fmul dword [eax + 8]
faddp st(2)
fmul dword [eax]
faddp st(1)
fcomp dword [0x858b50]
fnstsw ax
test ah, 5
jp 0x462489
mov byte [esi + 0x4ad], 0
jmp 0x462490
mov byte [esi + 0x4ad], 1
test bl, bl
je 0x4624c6
push 2
push 0xea60
push 1
push 0x40333333
push ebp
push esi
mov ecx, 0xb71f80
call fcn.0053a050
mov esi, dword [esi + 0x490]
cmp esi, ebp
je 0x4624c6
mov byte [esi + 0x21], 0x5c
jmp 0x4624c6
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
inc eax
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x461d72
xor edi, edi
jmp 0x4624e1
fstp st(0)
cmp dword [esp + 0x144], edi
jne 0x4629a9
movzx ebp, word [0x8cd57c]
mov ecx, dword [ebp*4 + 0xa9b0c8]
mov eax, dword [ecx + 0x14]
mov edx, dword [eax]
mov dword [esp + 0xc0], edx
mov edx, dword [eax + 4]
mov dword [esp + 0xc4], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xc8], eax
mov ecx, dword [ecx + 0x14]
add ecx, 0xc
mov edx, dword [ecx]
mov dword [esp + 0x68], edx
mov eax, dword [ecx + 4]
fld dword [esp + 0x68]
mov dword [esp + 0x6c], eax
fsub dword [esp + 0xc0]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x70], ecx
fadd dword [0x858b8c]
fstp dword [esp + 0x24]
fld dword [esp + 0xbc]
fdiv dword [esp + 0x24]
call fcn.00821b40
mov edi, eax
cmp edi, 8
mov dword [esp + 0x20], edi
jle 0x46256f
mov edi, 8
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
lea edx, [edi + 1]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0xd4]
fmul dword [esp + 0x24]
mov edx, dword [esp + 0xd8]
sub esp, 0x10
mov eax, esp
fsubr dword [esp + 0xcc]
fidiv dword [esp + 0x24]
fstp dword [esp + 0x2c]
fld dword [esp + 0xcc]
fmul dword [0x858b8c]
fstp dword [esp + 0xc]
mov dword [eax], ecx
mov ecx, dword [esp + 0xec]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.005a1980
xor eax, eax
add esp, 0x10
test edi, edi
mov dword [esp + 0x28], eax
jle 0x4629a9
jmp 0x4625e0
fild dword [esp + 0x28]
lea ebx, [eax + 1]
mov dword [esp + 0x14], ebx
lea ecx, [esp + 0x74]
fadd dword [0x858b8c]
fmul dword [esp + 0x24]
fild dword [esp + 0x14]
fmul dword [esp + 0x1c]
faddp st(1)
fstp dword [esp + 0x18]
call fcn.0059ae70
push 0
push 0
push 0
lea ecx, [esp + 0x80]
call fcn.0059af40
fld dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
fchs
mov eax, dword [esp + 0x2c]
fstp dword [esp + 0x88]
mov ecx, edx
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0x3f800000
call fcn.00821b1e
and eax, 0xff
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
lea ecx, [esp + 0x74]
fsub dword [0x858bf4]
fmul dword [0x859cd8]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
push eax
call fcn.0059b390
fld dword [esp + 0x64]
fmul dword [0x858c80]
fld dword [esp + 0x60]
fmul dword [0x858c80]
fld dword [esp + 0x5c]
fmul dword [0x858c80]
fstp dword [esp + 0xd4]
fld dword [esp + 0x34]
fmul dword [esp + 0x18]
fld dword [esp + 0x18]
fmul dword [esp + 0x30]
fld dword [esp + 0x18]
fmul dword [esp + 0x2c]
fstp dword [esp + 0xec]
fld dword [esp + 0x134]
fadd st(2)
fstp dword [esp + 0x14]
fld dword [esp + 0x130]
fadd st(1)
fstp st(2)
fstp st(0)
fld dword [esp + 0xec]
fadd dword [esp + 0x12c]
fstp dword [esp + 0xf8]
fld dword [esp + 0x14]
fadd st(3)
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push ecx
fadd st(1)
fstp dword [esp + 0x48]
fstp st(0)
fstp st(0)
fld dword [esp + 0xfc]
fadd dword [esp + 0xd8]
fstp dword [esp + 0xe4]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0xe4]
push edx
push eax
lea ecx, [esp + 0x80]
call fcn.0059af80
call fcn.00821b1e
and eax, 0xf
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [0x858c28]
fadd dword [esp + 0xa4]
fstp dword [esp + 0xa4]
call fcn.00821b1e
and eax, 0xf
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov eax, dword [esp + 0xa4]
push 0
fmul dword [0x858c28]
lea ecx, [esp + 0x5b]
push ecx
push ecx
fadd dword [esp + 0xb4]
fstp dword [esp + 0xb4]
mov edx, dword [esp + 0xb4]
fld dword [esp + 0xb8]
fadd dword [0x858ca0]
fstp dword [esp]
push edx
push eax
call fcn.005696c0
fstp dword [esp + 0xc0]
mov al, byte [esp + 0x6b]
add esp, 0x14
test al, al
je 0x46299b
fld dword [esp + 0xac]
lea ecx, [esp + 0x74]
fsub dword [esp + 0xc8]
push ecx
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0x118]
fstp dword [esp + 0xb4]
push eax
call fcn.0059c810
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x54], ecx
fld dword [esp + 0x54]
fadd dword [esp + 0xb0]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0x80]
fstp dword [esp + 0x54]
push ecx
fld dword [esp + 0x5c]
lea edx, [esp + 0x78]
fadd dword [esp + 0xb8]
push edx
lea eax, [esp + 0x118]
push eax
fstp dword [esp + 0x64]
fld dword [esp + 0x68]
fadd dword [esp + 0xc4]
fstp dword [esp + 0x68]
call fcn.0059c810
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], ecx
fld dword [esp + 0x50]
fadd dword [esp + 0xbc]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], eax
add esp, 0xc
fstp dword [esp + 0x44]
mov edx, dword [esp + 0x44]
fld dword [esp + 0x48]
mov ecx, esp
fadd dword [esp + 0xb4]
mov dword [ecx], edx
sub esp, 0xc
fstp dword [esp + 0x54]
mov eax, dword [esp + 0x54]
fld dword [esp + 0x58]
mov dword [ecx + 4], eax
fadd dword [esp + 0xc4]
mov eax, esp
fstp dword [esp + 0x58]
mov edx, dword [esp + 0x58]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [eax], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.00461020
add esp, 0x18
test al, al
je 0x46299b
push 0x17c
call fcn.005a1ee0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x124], 3
je 0x462925
push 1
push ebp
mov ecx, eax
call fcn.005a1d70
mov esi, eax
jmp 0x462927
xor esi, esi
mov ecx, dword [esi + 0x14]
lea edx, [esp + 0x74]
push edx
mov byte [esp + 0x128], 0
call fcn.0059bbc0
fld dword [esp + 0xac]
mov eax, dword [esi + 0x14]
fld dword [esp + 0xa8]
test eax, eax
mov ecx, dword [esp + 0xa4]
je 0x462969
mov dword [eax + 0x30], ecx
mov edx, dword [esi + 0x14]
fstp dword [edx + 0x34]
mov eax, dword [esi + 0x14]
fstp dword [eax + 0x38]
jmp 0x462972
fstp dword [esi + 8]
mov dword [esi + 4], ecx
fstp dword [esi + 0xc]
inc word [0xbb4a70]
mov byte [esi + 0x13c], 3
mov edx, dword [0xb7cb84]
add edx, 0x927c0
push esi
mov dword [esi + 0x150], edx
call fcn.00563220
add esp, 4
mov eax, ebx
cmp eax, edi
mov dword [esp + 0x28], eax
jl 0x4625e0
mov dword [esp + 0x124], 0xffffffff
lea ecx, [esp + 0x74]
call fcn.0059acd0
mov ecx, dword [esp + 0x11c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x118
ret