Function at 0x4434b0
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0xe8
mov eax, dword [esp + 0x110]
cmp byte [0xa10b2a], 0
mov edi, dword [esp + 0x104]
mov esi, dword [esp + 0x100]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x40], edi
mov dword [esp + 0xb0], 0
mov dword [esp + 0x38], esi
mov dword [esp + 0xac], 0
mov dword [esp + 0x34], eax
jne 0x44353a
push eax
push ebx
push ecx
mov eax, 0xfd6
mov ebx, 0xd0f
mov ecx, 0x1d8b
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x1d8b
jmp 0x443530
mov byte [0xa10b2a], 1
pop ecx
pop ebx
pop eax
fldz
fldz
fldz
fld dword [esp + 0x3c]
fsub dword [esp + 0x40]
fstp st(1)
fld dword [esp + 0x34]
fsub dword [esp + 0x38]
fstp st(2)
fld dword [esp + 0x108]
fsub dword [esp + 0xfc]
fstp st(3)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fld st(1)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x48]
mov eax, dword [esp + 0x48]
fld dword [esp + 0x40]
fadd dword [esp + 0x3c]
mov dword [esp + 0x24], eax
fmul dword [0x6885e8]
fstp dword [esp + 0x20]
fld dword [esp + 0x38]
fadd dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
fmul dword [0x6885e8]
fstp dword [esp + 0x1c]
fld dword [esp + 0xfc]
fadd dword [esp + 0x108]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
fmul dword [0x6885e8]
fstp dword [esp + 0x28]
fld st(2)
fstp dword [esp + 0x54]
fld st(1)
fstp dword [esp + 0x58]
fst dword [esp + 0x5c]
fcompp
lea ecx, [esp + 0x54]
fstp st(0)
call fcn.004dfea0
fld dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x68], 0
fchs
mov dword [esp + 0x60], eax
lea ecx, [esp + 0x60]
fstp dword [esp + 0x64]
call fcn.004dfea0
lea eax, [esp + 0xd0]
push eax
call fcn.004bc240
fldz
fld dword [esp + 0xd4]
fsub dword [esp + 0x2c]
pop ecx
fstp st(1)
fld dword [esp + 0xd4]
fsub dword [esp + 0x1c]
fmul dword [esp + 0x64]
fld st(1)
fmul dword [esp + 0x60]
faddp st(1)
fld dword [esp + 0xd8]
fsub dword [esp + 0x20]
fmul dword [esp + 0x68]
faddp st(1)
fcomp dword [0x6885ec]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x44368d
fld dword [esp + 0x60]
fmul dword [0x6885f0]
fstp dword [esp + 0x60]
fld dword [esp + 0x64]
fmul dword [0x6885f0]
fstp dword [esp + 0x64]
fld dword [esp + 0x68]
fmul dword [0x6885f0]
fstp dword [esp + 0x68]
fstp st(0)
call fcn.004bc120
mov ecx, dword [eax + 0x5f4]
call fcn.004d1e20
test al, al
je 0x4436b0
mov ebp, 0xa3
jmp 0x4436f5
call fcn.004bc120
mov ecx, dword [eax + 0x5f4]
call fcn.004d1e40
test al, al
je 0x4436d0
mov ebp, 0xdc
jmp 0x4436f5
call fcn.004bc120
mov ecx, dword [eax + 0x5f4]
call fcn.004d1e60
test al, al
je 0x4436f0
mov ebp, 0x9d
jmp 0x4436f5
mov ebp, 0x9c
mov eax, ebp
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x94ddd8], 1
je 0x443709
mov ebp, 0x9c
mov eax, dword [ebp*4 + 0x92d4c8]
fld dword [0x6885f4]
mov esi, dword [eax + 0x1c]
fmul dword [esi + 0xc]
fadd dword [0x6885f8]
fstp dword [esp + 0x14]
fld dword [esp + 0x24]
fdiv dword [esp + 0x14]
fnstcw word [esp + 0x10]
mov eax, dword [esp + 0x10]
or byte [esp + 0x11], 0xc
fldcw word [esp + 0x10]
mov dword [esp + 0x10], eax
fistp dword [esp + 0x48]
fldcw word [esp + 0x10]
mov eax, dword [esp + 0x48]
cmp eax, 6
mov dword [esp + 8], eax
jl 0x443760
mov dword [esp + 8], 6
xor ebx, ebx
cmp dword [esp + 8], 0
jle 0x443af8
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
add dword [esp + 4], 0x30
mov dword [esp + 0xc], ebp
mov eax, eax
mov eax, dword [esp + 8]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
mov dword [esp + 0x48], ebx
push dword [0x6885ec]
fmul dword [0x6885e8]
push dword [0x6885ec]
push dword [0x6885ec]
fisubr dword [esp + 0x54]
fmul dword [esp + 0x20]
fstp dword [esp + 0x24]
call fcn.004df6d0
fld dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x74], 0
fst dword [esp + 0x80]
fld st(0)
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x5c]
fchs
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x54]
fstp dword [esp + 0x6c]
fstp st(0)
mov dword [esp + 0x94], 0x3f800000
mov dword [esp + 0x70], eax
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
call fcn.006499f0
movzx eax, ax
and eax, 0xff
mov dword [esp + 0x48], eax
push eax
fild dword [esp + 0x4c]
fsub dword [0x6885fc]
fmul dword [0x688600]
fstp dword [esp]
lea ecx, [esp + 0x70]
call fcn.004deeb0
call fcn.006499f0
movzx eax, ax
and eax, 1
je 0x443860
lea ecx, [esp + 0x6c]
push dword [0x688604]
call fcn.004deeb0
fld dword [esp + 0x18]
fmul dword [esp + 0x5c]
push eax
fadd dword [esp + 0x34]
fstp dword [esp]
fld dword [esp + 0x1c]
fmul dword [esp + 0x5c]
push eax
fadd dword [esp + 0x34]
fstp dword [esp]
fld dword [esp + 0x20]
fmul dword [esp + 0x5c]
push eax
fadd dword [esp + 0x34]
fstp dword [esp]
lea ecx, [esp + 0x78]
call fcn.004df6b0
fld dword [esp + 0xa4]
fadd dword [0x688608]
mov eax, dword [esp + 4]
lea edi, [esp + 0xb8]
push 0
fstp dword [esp + 0xa8]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
push 0
push 1
push 1
push 0
push 0
push 2
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edx, dword [ebp*4 + 0x92d4c8]
lea eax, [esp + 0xd0]
push eax
mov eax, dword [edx + 0x1c]
fld dword [eax + 0xc]
fsub dword [0x6885f8]
push 0
push eax
fstp dword [esp]
lea eax, [esp + 0xe0]
push eax
call fcn.004d6370
add esp, 0x2c
cmp word [esp + 0xb4], 0
jne 0x443aed
push 0x5dc
call fcn.005bab20
mov edi, eax
pop ecx
test edi, edi
je 0x44392b
mov ecx, edi
push 1
push dword [esp + 0x10]
call fcn.0059e620
mov edi, eax
mov al, byte [edi + 0x50]
mov ecx, edi
and al, 7
or al, 0x20
mov byte [edi + 0x50], al
mov esi, dword [ecx]
call dword [esi + 0x94]
fsub dword [0x688608]
lea eax, [esp + 0x6c]
push eax
fadd dword [esp + 0xa8]
fstp dword [esp + 0xa8]
lea ecx, [edi + 4]
call fcn.004df8c0
mov ecx, edi
call fcn.00586110
mov al, byte [edi + 0x51]
and al, 0xfb
mov byte [edi + 0x51], al
lea ecx, [edi + 4]
call fcn.004df8f0
push edi
mov dword [edi + 0x230], 1
call fcn.0041d000
mov al, byte [edi + 0x1f9]
pop ecx
and al, 0xf7
mov ecx, edi
mov byte [edi + 0x1f9], al
mov byte [edi + 0x156], 0
mov byte [edi + 0x157], 0
mov byte [edi + 0x153], 0
mov al, byte [edi + 0x153]
mov byte [edi + 0x154], al
mov dword [edi + 0x15c], 0
fld dword [edi + 0x15c]
fnstcw word [esp + 0x10]
mov eax, dword [esp + 0x10]
or byte [esp + 0x11], 0xc
fldcw word [esp + 0x10]
mov dword [esp + 0x10], eax
fistp dword [esp + 0x48]
fldcw word [esp + 0x10]
mov eax, dword [esp + 0x48]
mov byte [edi + 0x160], al
mov al, byte [edi + 0x1fa]
and al, 0x7f
or al, 0x80
mov byte [edi + 0x1fa], al
call fcn.005b8520
test al, al
je 0x443a1d
call fcn.006499f0
movzx eax, ax
and eax, 1
je 0x443a1d
mov byte [edi + 0x245], 1
lea eax, [edi + 0x24]
fld dword [eax + 8]
fcomp dword [0x68860c]
fnstsw ax
test ah, 0x45
jne 0x443ae0
mov eax, dword [edi + 0x4c]
push 0
push eax
call fcn.00581500
pop ecx
pop ecx
push edi
call fcn.004db3f0
mov al, byte [edi + 0x1fb]
pop ecx
and al, 0xdf
or al, 0x20
mov byte [edi + 0x1fb], al
lea eax, [esp + 0xdc]
push eax
call fcn.004bc240
lea eax, [edi + 0x34]
lea edx, [edi + 4]
fldz
fldz
fldz
fld dword [eax + 8]
fsub dword [esp + 0xe8]
pop ecx
fstp st(1)
fld dword [eax + 4]
fsub dword [esp + 0xe0]
fstp st(2)
fld dword [eax]
fsub dword [esp + 0xdc]
fstp st(3)
fld dword [edx + 4]
fmul st(2)
fld dword [edx]
fmul st(4)
faddp st(1)
fld dword [edx + 8]
fmul st(2)
faddp st(1)
fcomp dword [0x6885ec]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x443ac0
mov byte [edi + 0x202], 0
jmp 0x443ac7
mov byte [edi + 0x202], 1
mov eax, dword [0x974b2c]
add eax, 0x1b58
mov dword [edi + 0x214], eax
jmp 0x443df0
test edi, edi
je 0x443aed
mov ecx, edi
mov esi, dword [ecx]
push 1
call dword [esi + 8]
inc ebx
cmp ebx, dword [esp + 8]
jl 0x443780
fld dword [esp + 0x24]
fmul dword [0x6885f8]
fnstcw word [esp + 0x10]
mov eax, dword [esp + 0x10]
or byte [esp + 0x11], 0xc
fldcw word [esp + 0x10]
mov dword [esp + 0x10], eax
fistp dword [esp + 0x48]
fldcw word [esp + 0x10]
mov eax, dword [esp + 0x48]
mov dword [esp], eax
movzx eax, word [0x68e894]
push 1
push eax
call fcn.0040e310
movzx eax, word [0x68e894]
pop ecx
pop ecx
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x94ddd8], 1
jne 0x443dd6
xor ebp, ebp
cmp dword [esp], 0
jle 0x443dd6
lea ebx, [esp + 0x9c]
mov eax, dword [esp]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
mov dword [esp + 0x48], ebp
push dword [0x6885ec]
fmul dword [0x6885e8]
push dword [0x6885ec]
push dword [0x6885ec]
fisubr dword [esp + 0x54]
fmul dword [0x688610]
fstp dword [esp + 0x50]
call fcn.004df6d0
fld dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x74], 0
fst dword [esp + 0x80]
fld st(0)
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x5c]
fchs
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x54]
fstp dword [esp + 0x6c]
fstp st(0)
mov dword [esp + 0x94], 0x3f800000
mov dword [esp + 0x70], eax
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
call fcn.006499f0
movzx eax, ax
and eax, 0xff
mov dword [esp + 0x48], eax
push eax
fild dword [esp + 0x4c]
fsub dword [0x6885fc]
fmul dword [0x688600]
fstp dword [esp]
lea ecx, [esp + 0x70]
call fcn.004deeb0
fld dword [0x688614]
fmul dword [esp + 0x68]
fld dword [esp + 0x44]
fmul dword [esp + 0x5c]
push eax
fadd dword [esp + 0x34]
faddp st(1)
fstp dword [esp]
fld dword [0x688614]
fmul dword [esp + 0x68]
fld dword [esp + 0x48]
fmul dword [esp + 0x5c]
push eax
fadd dword [esp + 0x34]
faddp st(1)
fstp dword [esp]
fld dword [0x688614]
fmul dword [esp + 0x68]
fld dword [esp + 0x4c]
fmul dword [esp + 0x5c]
push eax
fadd dword [esp + 0x34]
faddp st(1)
fstp dword [esp]
lea ecx, [esp + 0x78]
call fcn.004df6b0
call fcn.006499f0
movzx eax, ax
and eax, 0xf
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
fmul dword [0x688618]
fadd dword [esp + 0x9c]
fstp dword [esp + 0x9c]
call fcn.006499f0
movzx eax, ax
and eax, 0xf
mov dword [esp + 0x48], eax
lea eax, [esp + 0xb7]
fild dword [esp + 0x48]
push eax
push eax
fmul dword [0x688618]
fadd dword [esp + 0xa8]
fstp dword [esp + 0xa8]
fld dword [0x6885f4]
fadd dword [esp + 0xac]
fstp dword [esp]
push dword [esp + 0xa8]
push dword [esp + 0xa8]
call fcn.004d53a0
add esp, 0x10
cmp byte [esp + 0xb7], 0
fstp dword [esp + 0xa4]
je 0x443dcc
movzx edi, word [0x68e894]
fld dword [esp + 0xa4]
push 0
mov eax, dword [edi*4 + 0x92d4c8]
lea edi, [esp + 0xc8]
mov esi, dword [eax + 0x1c]
fsub dword [esi + 0x18]
push 0
push 1
fstp dword [esp + 0xb0]
lea esi, [ebx]
movsd dword es:[edi], dword [esi]
push 1
push 0
push 0
push 2
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x1c]
lea edx, [esp + 0xd0]
lea eax, [esp + 0xe0]
push edx
push 0
push dword [ecx + 0xc]
push eax
call fcn.004d6370
add esp, 0x2c
cmp word [esp + 0xb4], 0
jne 0x443dcc
push 0x194
call fcn.004e4070
mov esi, eax
pop ecx
test esi, esi
je 0x443da1
movzx eax, word [0x68e894]
mov ecx, esi
push 1
push eax
call fcn.004e41b0
mov esi, eax
lea eax, [esp + 0x6c]
lea ecx, [esi + 4]
push eax
call fcn.004df8c0
mov byte [esi + 0x16c], 3
mov eax, dword [0x974b2c]
push esi
add eax, 0x927c0
mov dword [esi + 0x180], eax
call fcn.004db3f0
pop ecx
inc ebp
cmp ebp, dword [esp]
jl 0x443b62
lea ecx, [esp + 0x6c]
call fcn.004dfae0
add esp, 0xe8
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
fstp st(0)
jmp 0x443aed