Function at 0x477d58
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 0x4780a7
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 0x478073
mov eax, dword [ebp - 0x84]
sub eax, 1
jb 0x477dd9
je 0x477e2f
dec eax
je 0x477e75
jmp 0x478073
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, 0x4780c0
call fcn.0040c140
mov edx, dword [ebp - 0x98]
mov eax, esi
call fcn.00405664
xor ebx, ebx
jmp 0x478073
mov eax, dword [ebp - 0x8c]
sub eax, 1
jb 0x477e46
sub eax, 9
je 0x477e54
sub eax, 0x50
je 0x477e62
jmp 0x477e6e
mov eax, esi
mov edx, 0x4780d8
call fcn.00405664
jmp 0x477e6e
mov eax, esi
mov edx, 0x4780ec
call fcn.00405664
jmp 0x477e6e
mov eax, esi
mov edx, 0x478100
call fcn.00405664
mov bl, 1
jmp 0x478073
cmp dword [ebp - 0x90], 5
jne 0x477e9a
cmp dword [ebp - 0x8c], 0
jne 0x477e9a
mov eax, esi
mov edx, 0x478114
call fcn.00405664
mov bl, 3
jmp 0x478073
cmp dword [ebp - 0x90], 5
jne 0x477ee9
cmp dword [ebp - 0x8c], 1
jne 0x477ee9
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, 0x47812c
call fcn.0040c140
mov edx, dword [ebp - 0xac]
mov eax, esi
call fcn.00405664
mov bl, 4
jmp 0x478073
cmp dword [ebp - 0x90], 5
jne 0x477f38
cmp dword [ebp - 0x8c], 2
jne 0x477f38
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, 0x478144
call fcn.0040c140
mov edx, dword [ebp - 0xb8]
mov eax, esi
call fcn.00405664
mov bl, 5
jmp 0x478073
cmp dword [ebp - 0x90], 6
jne 0x477f87
cmp dword [ebp - 0x8c], 0
jne 0x477f87
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, 0x47815c
call fcn.0040c140
mov edx, dword [ebp - 0xbc]
mov eax, esi
call fcn.00405664
mov bl, 6
jmp 0x478073
mov edi, dword [ebp - 0x90]
cmp edi, 6
jne 0x477fd8
cmp dword [ebp - 0x8c], 1
jne 0x477fd8
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, 0x478178
call fcn.0040c140
mov edx, dword [ebp - 0xc0]
mov eax, esi
call fcn.00405664
mov bl, 7
jmp 0x478073
cmp edi, 4
ja 0x47802a
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, 0x478190
call fcn.0040c140
mov edx, dword [ebp - 0xc4]
mov eax, esi
call fcn.00405664
mov bl, 2
jmp 0x478073
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, 0x4781ac
call fcn.0040c140
mov edx, dword [ebp - 0xc8]
mov eax, esi
call fcn.00405664
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4780ae
lea eax, [ebp - 0xc8]
mov edx, 5
call fcn.00405634
lea eax, [ebp - 0xac]
call fcn.00405610
lea eax, [ebp - 0x98]
call fcn.00405610
ret