Function at 0x46b530
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x4a4100]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
push 0x11c
lea eax, [ebp - 0x120]
push 0
mov dword [edi], 0xffffffff
push eax
mov dword [esi], 0xffffffff
call fcn.00474b70
mov ebx, dword [sym.imp.KERNEL32.dll_GetVersionExW]
add esp, 0xc
lea ecx, [ebp - 0x120]
push ecx
mov dword [ebp - 0x120], 0x11c
call ebx
test eax, eax
jne 0x46b5b5
lea edx, [ebp - 0x120]
push edx
mov dword [ebp - 0x120], 0x114
call ebx
test eax, eax
jne 0x46b5b5
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
movzx eax, word [ebp - 0xc]
mov dword [esi], eax
mov eax, dword [ebp - 0x110]
sub eax, 0
je 0x46b783
sub eax, 1
je 0x46b71b
sub eax, 1
jne 0x46b789
mov eax, dword [ebp - 0x11c]
cmp eax, 4
ja 0x46b600
mov dword [edi], 0x68
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
cmp eax, 5
jne 0x46b668
mov eax, dword [ebp - 0x118]
test eax, eax
jne 0x46b628
mov dword [edi], 0x69
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x46b646
mov dword [edi], 0xc8
pop edi
pop esi
mov al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x46b702
mov dword [edi], 0x12c
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
cmp eax, 6
jne 0x46b702
mov eax, dword [ebp - 0x118]
test eax, eax
jne 0x46b6a5
mov cl, byte [ebp - 6]
dec cl
movzx edx, cl
neg edx
sbb edx, edx
and edx, 0x64
add edx, 0x190
mov dword [edi], edx
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x46b6d4
mov al, byte [ebp - 6]
dec al
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 0x64
add ecx, 0x258
mov dword [edi], ecx
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x46b702
mov dl, byte [ebp - 6]
dec dl
movzx eax, dl
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x384
mov dword [edi], eax
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
mov dword [edi], 0x258
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x11c], 4
jne 0x46b789
mov eax, dword [ebp - 0x118]
test eax, eax
jne 0x46b747
mov dword [edi], 0x65
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
cmp eax, 0xa
jne 0x46b765
mov dword [edi], 0x66
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
cmp eax, 0x5a
jne 0x46b789
mov dword [edi], 0x67
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046f01c
mov esp, ebp
pop ebp
ret
mov dword [edi], 0x64
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov al, 1
pop ebx
call fcn.0046f01c
mov esp, ebp
pop ebp
ret