Function at 0x10080790
Capabilities:
Access peb ldr_data
Check os version
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe4
push ebx
push esi
push edi
push 0x10632ea8
mov esi, ecx
call fcn.1017c1ee
add esp, 4
test eax, eax
jne 0x10080dba
cmp dword [0x10632ed4], 0x7fffffff
je 0x10080dc1
mov eax, dword [0x10759cbc]
cmp eax, dword [0x10759cc0]
je 0x100807d8
mov dword [0x10759cc0], eax
mov eax, dword [0x10759cc8]
cmp eax, dword [0x10759ccc]
je 0x100807ea
mov dword [0x10759ccc], eax
mov ecx, dword [0x10759ce0]
mov edx, dword [0x10759ce4]
cmp ecx, edx
je 0x1008080a
push ecx
call fcn.10081330
mov eax, dword [0x10759ce0]
mov dword [0x10759ce4], eax
cmp byte [0x107556d4], 0
je 0x10080da6
mov eax, dword [0x1063c34c]
mov ecx, dword [eax]
test ecx, ecx
je 0x10080da6
mov eax, dword [ecx]
xor edx, edx
push dword [0x1063c5b8]
push dword [eax + 0x270]
lea eax, [esp + 0x4c]
push eax
call fcn.1002a9f0
test al, al
je 0x10080da6
mov ecx, dword [0x1063c36c]
xor edx, edx
push dword [0x1063c5b8]
mov eax, dword [ecx]
push dword [eax + 0x174]
lea eax, [esp + 0x4c]
push eax
call fcn.1002a9f0
test al, al
jne 0x10080da6
mov eax, dword [esi + 0x30]
mov cl, al
shr eax, 0xb
and cl, 1
test al, 1
je 0x1008088b
xor eax, eax
test cl, cl
sete al
add eax, 2
jmp 0x1008088e
movzx eax, cl
mov dword [0x10632ea4], eax
mov ecx, 0xc84de670
mov eax, dword [0x1063c34c]
mov edi, dword [eax]
call fcn.10111590
cmp dword [eax + edi + 1], 8
je 0x10080da6
mov ecx, edi
call fcn.1006bf40
mov ebx, eax
mov dword [esp + 0x3c], ebx
test ebx, ebx
je 0x10080da6
mov ecx, ebx
call fcn.1007c1b0
test al, al
je 0x10080da6
mov ecx, 0x19cdc55d
call fcn.10111590
movzx eax, word [eax + ebx]
mov dword [esp + 0x74], eax
cmp ax, 0x2d
je 0x1008090d
cmp ax, 0x2f
je 0x1008090d
cmp ax, 0x2e
je 0x1008090d
cmp ax, 0x30
je 0x1008090d
cmp ax, 0x2b
je 0x1008090d
cmp ax, 0x2c
jne 0x10080da6
vmovss xmm0, dword [esi + 0xc]
vmovss xmm1, dword [esi + 0x10]
vmovss xmm2, dword [esi + 0x14]
lea edx, [esp + 0x20]
lea ecx, [esp + 0x54]
call fcn.1007f7f0
mov eax, dword [0x1063c3f0]
xor esi, esi
vmovss xmm1, dword [0x10228684]
mov dword [esp + 0x44], esi
xor edi, edi
mov dword [esp + 0x48], esi
vmovss xmm0, dword [eax + 0x20]
vmovss dword [esp + 0xc], xmm0
vdivss xmm0, xmm1, xmm0
vmovss dword [esp + 0x50], xmm0
vmulss xmm0, xmm0, dword [0x102284b0]
vcvttss2si eax, xmm0
vmovq xmm0, qword [esp + 0x54]
mov dword [esp + 0x34], eax
mov dword [esp + 0x4c], esi
vmovq qword [esp + 0x10], xmm0
test esi, esi
jne 0x10080989
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x48]
call fcn.10080df0
cmp byte [0x107556d4], 0
je 0x10080a39
mov ecx, dword [0x1063c368]
xor edx, edx
push str.sv_gravity
push dword [0x1063c5b8]
mov eax, dword [ecx]
push dword [eax + 0x3c]
lea eax, [esp + 0xf0]
push eax
call fcn.1002a9f0
push dword [0x1063c5b8]
xor edx, edx
mov ecx, dword [eax]
push dword [ecx + 0x30]
lea ecx, [esp + 0x80]
push ecx
mov ecx, eax
call fcn.1002a9f0
vmovss xmm2, dword [esp + 0xc]
vmovss xmm3, dword [esp + 0x28]
vmulss xmm5, xmm2, dword [esp + 0x20]
vmulss xmm4, xmm2, dword [esp + 0x24]
fstp dword [esp + 0x30]
vmovss xmm0, dword [esp + 0x30]
vmulss xmm0, xmm0, dword [0x1022859c]
vmovaps xmm1, xmm2
vfnmadd213ss xmm1, xmm0, xmm3
vmulss xmm0, xmm3, dword [0x102285c0]
vfmadd231ss xmm0, xmm1, dword [0x102285c0]
vmulss xmm2, xmm0, xmm2
vmovss dword [esp + 0x70], xmm5
vmovss dword [esp + 0x6c], xmm4
vmovss dword [esp + 0x30], xmm2
vmovss dword [esp + 0x28], xmm1
jmp 0x10080a4b
vmovss xmm2, dword [esp + 0x30]
vmovss xmm4, dword [esp + 0x6c]
vmovss xmm5, dword [esp + 0x70]
cmp byte [0x107556d4], 0
vpxor xmm0, xmm0, xmm0
vmovq qword [esp + 0xa0], xmm0
mov dword [esp + 0xa8], 0
vmovss dword [esp + 0xac], xmm0
mov dword [esp + 0xb0], 0
je 0x10080acd
vmovq xmm0, qword [esp + 0x10]
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x60]
vmovq qword [esp + 0x60], xmm0
vaddss xmm0, xmm5, dword [esp + 0x54]
vmovss dword [esp + 0x60], xmm0
vaddss xmm0, xmm4, dword [esp + 0x64]
mov dword [esp + 0x68], eax
lea ecx, [esp + 0x54]
vmovss dword [esp + 0x64], xmm0
vaddss xmm0, xmm2, dword [esp + 0x68]
lea eax, [esp + 0x88]
push eax
vmovss dword [esp + 0x6c], xmm0
call fcn.1007f740
mov ecx, 0x19cdc55d
call fcn.10111590
vmovss xmm2, dword [esp + 0xb4]
movsx eax, word [eax + ebx]
add eax, 0xffffffd5
cmp eax, 5
ja case.default.0x10080af0
jmp dword [eax*4 + 0x10080dd4]
vmovss xmm0, dword [esp + 0x20]
vmovss xmm1, dword [esp + 0x24]
vmulss xmm0, xmm0, xmm0
vfmadd132ss xmm1, xmm0, xmm1
vsqrtss xmm0, xmm1, xmm1
vmovss xmm1, dword [0x102284e4]
vcomiss xmm1, xmm0
vmovss xmm1, dword [esp + 0xc]
jbe 0x10080bb6
vmovss xmm0, dword [esp + 0x50]
vmulss xmm0, xmm0, dword [0x10228520]
mov eax, edi
vcvttss2si ecx, xmm0
cdq
idiv ecx
neg edx
sbb ebx, ebx
inc ebx
jmp 0x10080bb8
vucomiss xmm2, dword [0x10228684]
lahf
test ah, 0x44
jnp case.0x10080af0.43
vmovss xmm0, dword [esp + 0xa8]
vcomiss xmm0, dword [0x1022860c]
jbe case.0x10080af0.43
vmovss xmm1, dword [esp + 0xc]
mov ebx, 1
jmp 0x10080bb8
vmovss xmm1, dword [esp + 0xc]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, edi
vmulss xmm0, xmm0, xmm1
vcomiss xmm0, dword [0x102286c0]
jbe 0x10080bb6
vmovss xmm0, dword [esp + 0x50]
vmulss xmm0, xmm0, dword [0x10228520]
mov eax, edi
vcvttss2si ecx, xmm0
cdq
idiv ecx
test edx, edx
jne 0x10080bb6
lea ebx, [edx + 1]
jmp 0x10080bb8
vmovss xmm1, dword [esp + 0xc]
xor ebx, ebx
vucomiss xmm2, dword [0x10228684]
lahf
test ah, 0x44
jnp 0x10080bdd
vmovaps xmm0, xmm1
lea edx, [esp + 0x20]
or ebx, 2
lea ecx, [esp + 0x88]
call fcn.1007fac0
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x5c], eax
vmovq xmm0, qword [esp + 0x94]
vmovq qword [esp + 0x10], xmm0
vmovq qword [esp + 0x54], xmm0
test bl, 1
jne 0x10080c23
test bl, 2
jne 0x10080c10
cmp esi, dword [esp + 0x34]
jge 0x10080c10
inc esi
jmp 0x10080c12
xor esi, esi
mov ebx, dword [esp + 0x3c]
inc edi
cmp edi, 0x15555554
jb 0x10080977
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x48]
call fcn.10080df0
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov eax, dword [esi + 8]
mov dword [esp + 0x28], eax
vmovq xmm0, qword [esi]
vmovq qword [esp + 0x20], xmm0
vxorps xmm0, xmm0, xmm0
vmovss dword [esp + 0x40], xmm0
vmovss dword [esp + 0x3c], xmm0
vmovss dword [esp + 0x38], xmm0
vmovss dword [esp + 0x34], xmm0
vmovss dword [esp + 0x10], xmm0
vmovss dword [esp + 0x14], xmm0
vmovss dword [esp + 0x18], xmm0
cmp esi, edi
je 0x10080d89
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x20]
call fcn.100de610
test al, al
je 0x10080d04
lea edx, [esp + 0x34]
mov ecx, esi
call fcn.100de610
test al, al
je 0x10080d04
vmovss xmm0, dword [esp + 0x3c]
vmovss dword [esp + 0x78], xmm0
vmovss xmm0, dword [esp + 0x40]
vmovss dword [esp + 0x7c], xmm0
vmovss xmm0, dword [esp + 0x34]
vmovss dword [esp + 0x80], xmm0
vmovss xmm0, dword [esp + 0x38]
lea eax, [esp + 0x78]
mov ecx, 0x10759cbc
push eax
vmovss dword [esp + 0x88], xmm0
call fcn.1007ff70
vmovq xmm0, qword [esi]
mov eax, dword [esi + 8]
vmovq qword [esp + 0x20], xmm0
vmovq xmm0, qword [esi]
mov dword [esp + 0x28], eax
vmovq qword [esp + 0x10], xmm0
mov dword [esp + 0x18], eax
add esi, 0xc
cmp esi, edi
jne 0x10080c80
vmovss xmm0, dword [esp + 0x10]
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10080d43
vmovss xmm0, dword [esp + 0x14]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10080d43
vmovss xmm0, dword [esp + 0x18]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10080d89
vmovss xmm1, dword [0x102288c8]
vmovss xmm0, dword [0x1022889c]
vmovss xmm2, dword [esp + 0x10]
vmovss xmm3, dword [esp + 0x14]
vmovss xmm4, dword [esp + 0x18]
call fcn.1007fc80
cmp word [esp + 0x74], 0x2c
jne 0x10080d89
vmovss xmm0, dword [esp + 0x10]
vmovss xmm1, dword [esp + 0x14]
vmovss xmm2, dword [esp + 0x18]
call fcn.10080070
push 0x10632ea8
call fcn.1017c220
add esp, 4
lea ecx, [esp + 0x44]
call fcn.100702b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x10632ea8
call fcn.1017c220
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 5
call fcn.1017c1b3
push 6
mov dword [0x10632ed4], 0x7ffffffe
call fcn.1017c1b3
nop
je 0x10080de1
or byte [eax], dl
je 0x10080de5
or byte [eax], dl
test dword [edx], 0xb461008
or byte [eax], dl
test dword [edx], 0xb461008
or ecx, dword [eax]
adc bh, dh
or cl, byte [eax]
adc byte [esi + 0xb], al
or byte [eax], dl
int3