Function at 0x480ff0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53f870
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x5bc684]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x54f15a
lea ecx, [ebp - 0x10]
call fcn.004c1780
mov dword [ebp - 4], 0
push 0x54f15a
lea ecx, [ebp - 0x14]
call fcn.004c1780
mov ebx, 1
mov byte [ebp - 4], bl
mov esi, dword [ebp + 8]
cmp byte [esi], 0
je 0x4813ac
mov edi, dword [sym.imp.KERNEL32.dll_GetVersion]
cmp byte [esi], 0x2f
jne case.0x481075.53
movsx eax, byte [esi + ebx]
add esi, ebx
add eax, 0xffffffce
cmp eax, 0x46
ja case.0x481075.53
movzx eax, byte [eax + 0x481404]
jmp dword [eax*4 + 0x4813dc]
mov dword [0x5c1494], ebx
jmp case.0x481075.53
call fcn.0047d970
mov dword [0x5c159c], eax
jmp case.0x481075.53
mov dword [0x5bdba4], ebx
jmp case.0x481075.53
add esi, ebx
push esi
lea ecx, [ebp - 0x10]
call fcn.004bfc00
push 0x2f
lea ecx, [ebp - 0x10]
call fcn.004c1120
test eax, eax
jns 0x4810c0
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx - 8]
push eax
lea edx, [ebp + 8]
push edx
lea ecx, [ebp - 0x10]
mov dword [0x5c1dfc], ebx
call fcn.004c1440
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x14]
call fcn.004bfb70
mov byte [ebp - 4], bl
lea ecx, [ebp + 8]
call fcn.004bfa40
lea ecx, [ebp - 0x14]
call fcn.004c02b0
push ebx
lea ecx, [ebp - 0x14]
call fcn.004bfdd0
mov edx, 0x5c1e00
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x481103
jmp case.0x481075.53
mov dword [0x5c17ac], ebx
jmp case.0x481075.53
call edi
cmp eax, 0x80000000
jae case.0x481075.53
call edi
cmp al, 6
jb case.0x481075.53
mov dword [0x5c18b4], ebx
jmp case.0x481075.53
add esi, ebx
push esi
lea ecx, [ebp - 0x10]
call fcn.004bfc00
push 0x2f
lea ecx, [ebp - 0x10]
call fcn.004c1120
test eax, eax
jns 0x48115f
mov eax, dword [ebp - 0x10]
mov eax, dword [eax - 8]
push eax
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x10]
call fcn.004c1440
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x14]
call fcn.004bfb70
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x18]
call fcn.004bfa40
lea ecx, [ebp - 0x14]
call fcn.004c02b0
mov eax, dword [ebp - 0x14]
mov edx, 0x5c1cf8
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x481196
jmp case.0x481075.53
movsx eax, byte [esi + ebx]
add esi, ebx
add eax, 0xffffffbc
cmp eax, 0x2f
ja case.0x4811bf.69
movzx edx, byte [eax + 0x48145c]
jmp dword [edx*4 + 0x48144c]
add esi, ebx
push esi
lea ecx, [ebp - 0x10]
call fcn.004bfc00
push 0x2f
lea ecx, [ebp - 0x10]
call fcn.004c1120
test eax, eax
jns 0x4811e5
mov eax, dword [ebp - 0x10]
mov eax, dword [eax - 8]
push eax
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x10]
mov dword [0x5c0f6c], ebx
call fcn.004c1440
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x14]
call fcn.004bfb70
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x1c]
call fcn.004bfa40
lea ecx, [ebp - 0x14]
call fcn.004c03d0
lea ecx, [ebp - 0x14]
call fcn.004c02b0
push ebx
lea ecx, [ebp - 0x14]
call fcn.004bfdd0
mov edx, 0x5c17b0
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x481230
jmp case.0x4811bf.69
add esi, ebx
push esi
lea ecx, [ebp - 0x10]
call fcn.004bfc00
push 0x2f
lea ecx, [ebp - 0x10]
call fcn.004c1120
test eax, eax
jns 0x48125f
mov edx, dword [ebp - 0x10]
mov eax, dword [edx - 8]
push eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x10]
mov dword [0x5c0e64], ebx
call fcn.004c1440
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x14]
call fcn.004bfb70
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x20]
call fcn.004bfa40
lea ecx, [ebp - 0x14]
call fcn.004c03d0
lea ecx, [ebp - 0x14]
call fcn.004c02b0
push ebx
lea ecx, [ebp - 0x14]
call fcn.004bfdd0
mov edx, 0x5c16a8
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x4812b0
jmp case.0x4811bf.69
add esi, ebx
push esi
lea ecx, [ebp - 0x10]
call fcn.004bfc00
push 0x2f
lea ecx, [ebp - 0x10]
call fcn.004c1120
test eax, eax
jns 0x4812dc
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx - 8]
push eax
lea edx, [ebp - 0x24]
push edx
lea ecx, [ebp - 0x10]
mov dword [0x5c1074], ebx
call fcn.004c1440
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x14]
call fcn.004bfb70
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x24]
call fcn.004bfa40
lea ecx, [ebp - 0x14]
call fcn.004c03d0
lea ecx, [ebp - 0x14]
call fcn.004c02b0
push ebx
lea ecx, [ebp - 0x14]
call fcn.004bfdd0
mov edx, 0x5c18b8
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x481327
add esi, ebx
push esi
lea ecx, [ebp - 0x10]
call fcn.004bfc00
push 0x2f
lea ecx, [ebp - 0x10]
call fcn.004c1120
test eax, eax
jns 0x481351
mov eax, dword [ebp - 0x10]
mov eax, dword [eax - 8]
push eax
lea ecx, [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x10]
call fcn.004c1440
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x14]
call fcn.004bfb70
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x28]
call fcn.004bfa40
lea ecx, [ebp - 0x14]
call fcn.004c03d0
lea ecx, [ebp - 0x14]
call fcn.004c02b0
push ebx
lea ecx, [ebp - 0x14]
call fcn.004bfdd0
mov edx, 0x5c19c0
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x481396
add esi, ebx
cmp byte [esi], 0
jne 0x481053
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.004bfa40
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004bfa40
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret