Function at 0x53d53c
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x170
mov esi, esp
mov dword [esi + 0x158], ebp
lea eax, [esi + 0x160]
mov dword [esi + 8], ecx
mov dword [esi + 4], edx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x586a20
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
and dword [eax + 8], 0
push 4
pop edx
mov ecx, 0x1a40
call fcn.0042029e
mov ecx, 0x80000000
mov dword [eax], ecx
mov dword [eax + 0x690], ecx
mov dword [eax + 0xd20], ecx
mov dword [eax + 0x13b0], ecx
push 4
pop edx
mov ecx, 0x1a40
mov dword [esi + 0x30], edx
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], edx
mov dword [esi + 0x168], 1
call fcn.0042029e
mov ecx, dword [ebp + 8]
mov ebx, 0x80000000
xorps xmm0, xmm0
lea edx, [esi + 0x90]
lea edi, [esi + 0x30]
mov dword [eax], ebx
mov dword [eax + 0x690], ebx
mov dword [eax + 0xd20], ebx
mov dword [eax + 0x13b0], ebx
movaps xmmword [edx + 0x10], xmm0
movaps xmmword [edx], xmm0
movsd xmm1, qword [edi]
mov dword [edx + 0x54], ecx
mov ecx, dword [esi + 4]
mov dword [edx + 0x50], ecx
mov ecx, dword [ebp + 0xc]
mov dword [edx + 0x58], ecx
mov ecx, dword [edi + 8]
mov dword [edx + 0x20], ebx
movsd qword [edx + 0x88], xmm1
mov dword [edx + 0x90], ecx
push 4
pop ecx
mov dword [edx + 0x94], ecx
mov dword [edx + 0x98], eax
mov dword [edx + 0x9c], ecx
and word [edx + 0xb8], 0
movaps xmmword [edx + 0x40], xmm0
mov dword [edx + 0xba], 0x309
and dword [edx + 0xa0], 0
mov dword [edx + 0xa4], ecx
and dword [edx + 0xa8], 0
mov dword [edx + 0x64], ebx
mov dword [edx + 0x70], ebx
mov dword [edx + 0x7c], ebx
and dword [edx + 0xac], 0
mov dword [edx + 0xb0], ecx
and dword [edx + 0xb4], 0
and dword [edi], 0
or dword [edx + 0x60], 0xffffffff
add ecx, edi
mov dword [edi + 4], 0x80000001
mov dword [esi + 0x168], 3
mov dword [esi + 4], ecx
lea ecx, [esi + 0x10]
push edi
push 1
call fcn.005200c8
pop eax
pop ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x168], 2
call fcn.00529e48
cmp dword [esi + 0x10], 0
je 0x53d710
movsd xmm0, qword [esi + 0x14]
mov eax, dword [esi + 0x1c]
movsd qword [esi + 0x20], xmm0
mov dword [esi + 0x28], eax
cmp dword [esi + 0x20], 0x80000003
je 0x53d71b
lea ecx, [esi + 0x30]
lea edx, [esi + 0x20]
call fcn.0051fe6c
lea eax, [esi + 0x34]
lea ebx, [esi + 0x6c]
mov edi, dword [eax - 4]
push 0x24
push eax
push ebx
call fcn.0058a110
add esp, 0xc
cmp edi, 6
je 0x53d71b
mov ecx, ebx
mov ebx, dword [esi + 8]
lea eax, [ebx + 4]
push 0x24
push ecx
push eax
call fcn.0058a110
add esp, 0xc
mov dword [ebx], edi
jmp 0x53d745
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
call fcn.0041b0e1
lea ecx, [esi + 0x30]
lea edx, [esi + 0x90]
call fcn.00520068
mov al, byte [esi + 0x35]
cmp al, 3
jne 0x53d763
mov ebx, dword [esi + 8]
and dword [ebx], 0
mov dword [ebx + 4], 0x80000000
mov byte [ebx + 8], 1
and dword [ebx + 0x14], 0
or dword [esi + 0x168], 0xffffffff
lea ecx, [esi + 0x90]
mov dword [ebx + 0xac], 0x80000000
call fcn.0051f5b2
jmp 0x53d7a7
mov ecx, dword [esi + 0x30]
mov byte [esi + 4], al
mov eax, dword [esi + 0x34]
mov dword [esi + 0xc], ecx
cmp al, 3
push 2
pop ebx
cmovne ebx, eax
push 0xc0
lea eax, [esi + 0x90]
push eax
mov edi, dword [esi + 8]
push edi
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 0xc]
mov cl, byte [esi + 4]
mov dword [edi + 0xc0], eax
mov byte [edi + 0xc4], bl
mov byte [edi + 0xc5], cl
mov eax, dword [esi + 0x160]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret