Function at 0x4a459c
Capabilities:
Check os version

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffcb0
mov edi, 0x5537b0
push 0x100
call fcn.0045c458
pop ecx
mov esi, eax
mov dword [esp + 4], 0x114
lea eax, [esp + 4]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x4a48e8
lea edx, [edi + 0x34]
push edx
call sub.KERNEL32.DLL_GetModuleHandleW
lea ebp, [edi + 3]
lea ebx, [edi + 3]
test eax, eax
je 0x4a45f6
lea edx, [edi + 0x48]
push edx
push eax
call sub.KERNEL32.DLL_GetProcAddress
test eax, eax
je 0x4a45f6
lea ebp, [edi + 0x59]
mov eax, dword [esp + 0x14]
sub eax, 1
jb 0x4a4771
je 0x4a4614
dec eax
je 0x4a4648
dec eax
je 0x4a4779
jmp 0x4a477f
cmp dword [esp + 8], 4
jne 0x4a462a
cmp dword [esp + 0xc], 0xa
jae 0x4a462a
lea ebx, [edi + 0x61]
jmp 0x4a477f
cmp dword [esp + 8], 4
jne 0x4a4640
cmp dword [esp + 0xc], 0xa
jne 0x4a4640
lea ebx, [edi + 0x65]
jmp 0x4a477f
lea ebx, [edi + 0x69]
jmp 0x4a477f
cmp dword [esp + 8], 6
jne 0x4a46e8
mov dword [esp + 0x118], 0x11c
lea eax, [esp + 0x118]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x4a46e0
mov eax, dword [esp + 0xc]
cmp eax, 2
jne 0x4a4692
cmp byte [esp + 0x232], 1
jne 0x4a468a
lea ebx, [edi + 0x6d]
jmp 0x4a477f
lea ebx, [edi + 0x70]
jmp 0x4a477f
cmp eax, 1
jne 0x4a46b4
cmp byte [esp + 0x232], 1
jne 0x4a46a9
lea ebx, [edi + 0x7d]
jmp 0x4a477f
lea ebx, [edi + 0x80]
jmp 0x4a477f
test eax, eax
jne 0x4a46d8
cmp byte [esp + 0x232], 1
jne 0x4a46cd
lea ebx, [edi + 0x90]
jmp 0x4a477f
lea ebx, [edi + 0x97]
jmp 0x4a477f
lea ebx, [edi + 3]
jmp 0x4a477f
lea ebx, [edi + 3]
jmp 0x4a477f
cmp dword [esp + 8], 5
jne 0x4a4744
cmp dword [esp + 0xc], 2
jb 0x4a4744
mov dword [esp + 0x234], 0x11c
lea eax, [esp + 0x234]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x4a473f
cmp byte [esp + 0x34e], 1
jne 0x4a4724
lea ebx, [edi + 0xa4]
jmp 0x4a477f
push 0x59
call sub.USER32.DLL_GetSystemMetrics
test eax, eax
je 0x4a4737
lea ebx, [edi + 0xac]
jmp 0x4a477f
lea ebx, [edi + 0xbc]
jmp 0x4a477f
lea ebx, [edi + 3]
jmp 0x4a477f
mov eax, dword [esp + 8]
cmp eax, 5
jne 0x4a475c
cmp dword [esp + 0xc], 1
jne 0x4a475c
lea ebx, [edi + 0xc9]
jmp 0x4a477f
cmp eax, 5
jne 0x4a4769
lea ebx, [edi + 0xcd]
jmp 0x4a477f
lea ebx, [edi + 0xd3]
jmp 0x4a477f
lea ebx, [edi + 0xd7]
jmp 0x4a477f
lea ebx, [edi + 0xdc]
push 0
push 0
push 4
push 6
call fcn.004a49f8
add esp, 0x10
test eax, eax
je 0x4a47b1
mov dword [esp + 8], 6
mov dword [esp + 0xc], 4
xor eax, eax
lea ebx, [edi + 0xe0]
mov dword [esp + 0x10], eax
jmp 0x4a4813
push 0
push 1
push 3
push 6
call fcn.004a49f8
add esp, 0x10
test eax, eax
je 0x4a47e3
mov dword [esp + 8], 6
mov dword [esp + 0xc], 3
xor eax, eax
lea ebx, [edi + 0xe4]
mov dword [esp + 0x10], eax
jmp 0x4a4813
push 0
push 0
push 3
push 6
call fcn.004a49f8
add esp, 0x10
test eax, eax
je 0x4a4813
mov dword [esp + 8], 6
mov dword [esp + 0xc], 3
xor eax, eax
lea ebx, [edi + 0xe9]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
je 0x4a484b
mov dx, word [esp + 0x10]
and dx, 0xffff
movzx ecx, dx
push ecx
mov eax, dword [esp + 0x10]
push eax
mov edx, dword [esp + 0x10]
push edx
push ebp
push ebx
lea ecx, [edi + 0xf2]
push ecx
push 0x100
push esi
call fcn.004a33e8
add esp, 0x20
jmp 0x4a486c
mov eax, dword [esp + 0xc]
push eax
mov edx, dword [esp + 0xc]
push edx
push ebp
push ebx
lea ecx, [edi + 0x10b]
push ecx
push 0x100
push esi
call fcn.004a33e8
add esp, 0x1c
cmp word [esp + 0x18], 0
je 0x4a48fd
lea eax, [esp + 0x18]
push eax
call fcn.004697a8
pop ecx
mov dword [esp], eax
xor ebx, ebx
mov eax, dword [esp]
jmp 0x4a488f
inc ebx
inc eax
cmp byte [eax], 0
je 0x4a48ab
movsx edx, byte [eax]
cmp edx, 0x20
je 0x4a488d
cmp edx, 9
je 0x4a488d
cmp edx, 0xa
je 0x4a488d
cmp edx, 0xd
je 0x4a488d
mov ecx, dword [esp]
cmp byte [ecx + ebx], 0
je 0x4a48dc
push 0xff
lea eax, [edi + 0x11f]
push eax
push esi
call fcn.004a4110
add esp, 0xc
push 0xff
add ebx, dword [esp + 4]
push ebx
push esi
call fcn.004a4110
add esp, 0xc
mov edx, dword [esp]
push edx
call fcn.0045c528
pop ecx
jmp 0x4a48fd
lea ecx, [edi + 0x121]
push ecx
push 0x100
push esi
call fcn.004a33e8
add esp, 0xc
mov eax, esi
add esp, 0x350
pop ebp
pop edi
pop esi
pop ebx
ret