Function at 0x46d774
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff38
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xbc], edx
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xac], edx
mov dword [ebp - 0x98], edx
mov esi, eax
xor eax, eax
push ebp
push 0x46dac3
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x94], 0x94
mov bl, 8
lea eax, [ebp - 0x94]
push eax
call sub.kernel32.dll_GetVersionExA
test eax, eax
je 0x46da8f
mov eax, dword [ebp - 0x84]
sub eax, 1
jb 0x46d7f5
je 0x46d84b
dec eax
je 0x46d891
jmp 0x46da8f
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xa8], eax
mov byte [ebp - 0xa4], 0
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xa0], eax
mov byte [ebp - 0x9c], 0
lea edx, [ebp - 0xa8]
mov ecx, 1
mov eax, 0x46dadc
call fcn.0040b38c
mov edx, dword [ebp - 0x98]
mov eax, esi
call fcn.00405524
xor ebx, ebx
jmp 0x46da8f
mov eax, dword [ebp - 0x8c]
sub eax, 1
jb 0x46d862
sub eax, 9
je 0x46d870
sub eax, 0x50
je 0x46d87e
jmp 0x46d88a
mov eax, esi
mov edx, 0x46daf4
call fcn.00405524
jmp 0x46d88a
mov eax, esi
mov edx, 0x46db08
call fcn.00405524
jmp 0x46d88a
mov eax, esi
mov edx, 0x46db1c
call fcn.00405524
mov bl, 1
jmp 0x46da8f
cmp dword [ebp - 0x90], 5
jne 0x46d8b6
cmp dword [ebp - 0x8c], 0
jne 0x46d8b6
mov eax, esi
mov edx, 0x46db30
call fcn.00405524
mov bl, 3
jmp 0x46da8f
cmp dword [ebp - 0x90], 5
jne 0x46d905
cmp dword [ebp - 0x8c], 1
jne 0x46d905
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x80]
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0xb0], 6
lea edx, [ebp - 0xb4]
xor ecx, ecx
mov eax, 0x46db48
call fcn.0040b38c
mov edx, dword [ebp - 0xac]
mov eax, esi
call fcn.00405524
mov bl, 4
jmp 0x46da8f
cmp dword [ebp - 0x90], 5
jne 0x46d954
cmp dword [ebp - 0x8c], 2
jne 0x46d954
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x80]
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0xb0], 6
lea edx, [ebp - 0xb4]
xor ecx, ecx
mov eax, 0x46db60
call fcn.0040b38c
mov edx, dword [ebp - 0xb8]
mov eax, esi
call fcn.00405524
mov bl, 5
jmp 0x46da8f
cmp dword [ebp - 0x90], 6
jne 0x46d9a3
cmp dword [ebp - 0x8c], 0
jne 0x46d9a3
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x80]
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0xb0], 6
lea edx, [ebp - 0xb4]
xor ecx, ecx
mov eax, 0x46db78
call fcn.0040b38c
mov edx, dword [ebp - 0xbc]
mov eax, esi
call fcn.00405524
mov bl, 6
jmp 0x46da8f
mov edi, dword [ebp - 0x90]
cmp edi, 6
jne 0x46d9f4
cmp dword [ebp - 0x8c], 1
jne 0x46d9f4
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x80]
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0xb0], 6
lea edx, [ebp - 0xb4]
xor ecx, ecx
mov eax, 0x46db94
call fcn.0040b38c
mov edx, dword [ebp - 0xc0]
mov eax, esi
call fcn.00405524
mov bl, 7
jmp 0x46da8f
cmp edi, 4
ja 0x46da46
lea eax, [ebp - 0xc4]
push eax
mov dword [ebp - 0xa8], edi
mov byte [ebp - 0xa4], 0
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xa0], eax
mov byte [ebp - 0x9c], 0
lea edx, [ebp - 0xa8]
mov ecx, 1
mov eax, 0x46dbac
call fcn.0040b38c
mov edx, dword [ebp - 0xc4]
mov eax, esi
call fcn.00405524
mov bl, 2
jmp 0x46da8f
lea eax, [ebp - 0xc8]
push eax
mov dword [ebp - 0xa8], edi
mov byte [ebp - 0xa4], 0
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xa0], eax
mov byte [ebp - 0x9c], 0
lea edx, [ebp - 0xa8]
mov ecx, 1
mov eax, 0x46dbc8
call fcn.0040b38c
mov edx, dword [ebp - 0xc8]
mov eax, esi
call fcn.00405524
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46daca
lea eax, [ebp - 0xc8]
mov edx, 5
call fcn.004054f4
lea eax, [ebp - 0xac]
call fcn.004054d0
lea eax, [ebp - 0x98]
call fcn.004054d0
ret