Function at 0x42c5c0
Capabilities:
Check os version

Disassembly:
sub esp, 0x9c
mov eax, dword [0x4bacc0]
xor eax, esp
mov dword [esp + 0x98], eax
push ebx
mov ebx, dword [esp + 0xa8]
push ebp
mov ebp, dword [esp + 0xa8]
push esi
push 0x94
lea eax, [esp + 0x14]
push 0
push eax
call fcn.00481440
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
mov dword [esp + 0x14], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esp + 0x20]
cmp eax, 2
jne 0x42c7aa
mov eax, dword [esp + 0x14]
cmp eax, 5
jae 0x42c666
test ebp, ebp
je 0x42c62d
mov dword [ebp], 0x5dc
test ebx, ebx
je 0x42c91a
mov edx, dword [str.Windows_NT_4.0]
mov dword [ebx], edx
mov eax, dword [0x49f8e0]
mov dword [ebx + 4], eax
mov ecx, dword [0x49f8e4]
mov dword [ebx + 8], ecx
mov dx, word [0x49f8e8]
mov word [ebx + 0xc], dx
mov al, byte [0x49f8ea]
mov byte [ebx + 0xe], al
jmp 0x42c8bc
cmp eax, 6
jne 0x42c729
push str.IsWow64Process
push str.kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
mov dword [esp + 0xc], 0
je 0x42c6ed
lea ecx, [esp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
cmp dword [esp + 0xc], 0
je 0x42c6ed
test ebp, ebp
je 0x42c6b4
mov dword [ebp], 0x8fc
test ebx, ebx
je 0x42c91a
mov edx, dword [str.Windows_Vista_x64]
mov dword [ebx], edx
mov eax, dword [0x49f8b0]
mov dword [ebx + 4], eax
mov ecx, dword [0x49f8b4]
mov dword [ebx + 8], ecx
mov edx, dword [0x49f8b8]
mov dword [ebx + 0xc], edx
mov ax, word [0x49f8bc]
mov word [ebx + 0x10], ax
jmp 0x42c8bc
test ebp, ebp
je 0x42c6f8
mov dword [ebp], 0x898
test ebx, ebx
je 0x42c91a
mov ecx, dword [str.Windows_Vista]
mov dword [ebx], ecx
mov edx, dword [0x49f8a0]
mov dword [ebx + 4], edx
mov eax, dword [0x49f8a4]
mov dword [ebx + 8], eax
mov cx, word [0x49f8a8]
mov word [ebx + 0xc], cx
jmp 0x42c8bc
cmp eax, 5
jne 0x42c76f
cmp dword [esp + 0x18], 0
jne 0x42c76f
test ebp, ebp
je 0x42c740
mov dword [ebp], 0x7d0
test ebx, ebx
je 0x42c91a
mov edx, dword [str.Windows_2000]
mov dword [ebx], edx
mov eax, dword [0x49f890]
mov dword [ebx + 4], eax
mov ecx, dword [0x49f894]
mov dword [ebx + 8], ecx
mov dl, byte [0x49f898]
mov byte [ebx + 0xc], dl
jmp 0x42c8bc
test ebp, ebp
je 0x42c77a
mov dword [ebp], 0x834
test ebx, ebx
je 0x42c91a
mov eax, dword [str.Windows_XP]
mov dword [ebx], eax
mov ecx, dword [0x49f884]
mov dword [ebx + 4], ecx
mov dx, word [0x49f888]
mov word [ebx + 8], dx
mov al, byte [0x49f88a]
mov byte [ebx + 0xa], al
jmp 0x42c8bc
cmp eax, 1
jne 0x42c934
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x42c7f7
test ebp, ebp
je 0x42c7c6
mov dword [ebp], 0x447
test ebx, ebx
je 0x42c91a
mov ecx, dword [str.Windows_95]
mov dword [ebx], ecx
mov edx, dword [0x49f878]
mov dword [ebx + 4], edx
mov ax, word [0x49f87c]
mov word [ebx + 8], ax
mov cl, byte [0x49f87e]
mov byte [ebx + 0xa], cl
jmp 0x42c8bc
cmp eax, 0xa
jne 0x42c885
push edi
mov edi, 0x49f870
lea esi, [esp + 0x28]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
pop edi
jne 0x42c84c
test ebp, ebp
je 0x42c821
mov dword [ebp], 0x44b
test ebx, ebx
je 0x42c91a
mov eax, dword [str.Windows_98SE]
mov dword [ebx], eax
mov ecx, dword [0x49f864]
mov dword [ebx + 4], ecx
mov edx, dword [0x49f868]
mov dword [ebx + 8], edx
mov al, byte [0x49f86c]
mov byte [ebx + 0xc], al
jmp 0x42c8bc
test ebp, ebp
je 0x42c857
mov dword [ebp], 0x44a
test ebx, ebx
je 0x42c91a
mov ecx, dword [str.Windows_98]
mov dword [ebx], ecx
mov edx, dword [0x49f858]
mov dword [ebx + 4], edx
mov ax, word [0x49f85c]
mov word [ebx + 8], ax
mov cl, byte [0x49f85e]
mov byte [ebx + 0xa], cl
jmp 0x42c8bc
test ebp, ebp
je 0x42c890
mov dword [ebp], 0x44c
test ebx, ebx
je 0x42c91a
mov edx, dword [str.Windows_ME]
mov dword [ebx], edx
mov eax, dword [0x49f84c]
mov dword [ebx + 4], eax
mov cx, word [0x49f850]
mov word [ebx + 8], cx
mov dl, byte [0x49f852]
mov byte [ebx + 0xa], dl
cmp byte [esp + 0x24], 0
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
je 0x42c8ed
mov eax, ebx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x42c8d0
lea ecx, [esp + 0x24]
push ecx
sub eax, edx
add eax, ebx
push 0x49f844
push eax
call esi
add esp, 0xc
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x42c8f2
mov ecx, dword [esp + 0x18]
sub eax, edx
movzx edx, word [esp + 0x1c]
push edx
mov edx, dword [esp + 0x18]
push ecx
push edx
add eax, ebx
push str._Ver.__d._d._d
push eax
call esi
add esp, 0x14
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.004810ab
add esp, 0x9c
ret
mov ecx, dword [esp + 0xa4]
pop esi
pop ebp
pop ebx
xor ecx, esp
mov eax, 0x15
call fcn.004810ab
add esp, 0x9c
ret