Function at 0x59a418
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x2a
push 0
push 0
dec ecx
jne 0x59a421
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405168
xor eax, eax
push ebp
push 0x59a802
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0xc4], 0x94
lea eax, [ebp - 0xc4]
push eax
call sub.kernel32.dll_GetVersionExA
cmp dword [ebp - 0xc0], 6
jae 0x59a482
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0059a1d8
mov ebx, eax
jmp 0x59a733
xor eax, eax
push ebp
push 0x59a719
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0040cf40
add esp, 0xfffffff8
fstp qword [esp]
wait
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x2a]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0040cbac
lea eax, [ebp - 0x14]
call fcn.00406e54
push eax
mov eax, dword [0x6983a8]
push eax
push 1
push 0
mov eax, dword [0x697c60]
push eax
call sub.ole32.dll_CoCreateInstance
lea eax, [ebp - 0xe4]
call fcn.0041a9a0
lea edx, [ebp - 0xe4]
lea eax, [ebp - 0xd4]
call fcn.0040603c
push dword [ebp - 0xc8]
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
push dword [ebp - 0xd4]
lea eax, [ebp - 0x104]
call fcn.0041a9a0
lea edx, [ebp - 0x104]
lea eax, [ebp - 0xf4]
call fcn.0040603c
push dword [ebp - 0xe8]
push dword [ebp - 0xec]
push dword [ebp - 0xf0]
push dword [ebp - 0xf4]
lea eax, [ebp - 0x124]
call fcn.0041a9a0
lea edx, [ebp - 0x124]
lea eax, [ebp - 0x114]
call fcn.0040603c
push dword [ebp - 0x108]
push dword [ebp - 0x10c]
push dword [ebp - 0x110]
push dword [ebp - 0x114]
lea eax, [ebp - 0x144]
call fcn.0041a9a0
lea edx, [ebp - 0x144]
lea eax, [ebp - 0x134]
call fcn.0040603c
push dword [ebp - 0x128]
push dword [ebp - 0x12c]
push dword [ebp - 0x130]
push dword [ebp - 0x134]
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 0x28]
call fcn.00406f60
lea eax, [ebp - 0x10]
call fcn.00406e54
push eax
push 0x59a81c
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
call fcn.00406f60
lea eax, [ebp - 0x18]
call fcn.00406e54
push eax
lea eax, [ebp - 0x148]
mov edx, dword [ebp - 4]
call fcn.0040556c
mov eax, dword [ebp - 0x148]
push eax
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [eax]
call dword [eax + 0x34]
call fcn.00406f60
lea eax, [ebp - 0x1c]
call fcn.00406e54
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [eax]
call dword [eax + 0x4c]
call fcn.00406f60
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x150]
call fcn.00406e54
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [eax]
call dword [eax + 0x24]
call fcn.00406f60
mov eax, dword [ebp - 0x150]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
call fcn.00406f60
cmp dword [ebp - 0x14c], 0
jle 0x59a70f
lea eax, [ebp - 0x30]
call fcn.00406e54
push eax
push 1
lea eax, [ebp - 0x154]
call fcn.00406e54
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [eax]
call dword [eax + 0x24]
call fcn.00406f60
mov eax, dword [ebp - 0x154]
push eax
mov eax, dword [eax]
call dword [eax + 0x20]
call fcn.00406f60
lea eax, [ebp - 0x158]
call fcn.004053ec
push eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [eax]
call dword [eax + 0x38]
call fcn.00406f60
mov edx, dword [ebp - 0x158]
lea eax, [ebp - 0x20]
call fcn.00404f48
mov edx, dword [ebp - 0x20]
mov eax, 0x59a828
call fcn.004052bc
mov ebx, eax
test bx, bx
jbe 0x59a703
lea eax, [ebp - 0x24]
push eax
movzx esi, bx
mov edx, esi
inc edx
mov ecx, 2
mov eax, dword [ebp - 0x20]
call fcn.004051d8
lea eax, [ebp - 0x28]
push eax
mov edx, esi
add edx, 4
mov ecx, 2
mov eax, dword [ebp - 0x20]
call fcn.004051d8
mov eax, dword [ebp - 0x24]
call fcn.0040af8c
mov edx, dword [ebp - 8]
mov word [edx], ax
mov eax, dword [ebp - 0x28]
call fcn.0040af8c
mov edx, dword [ebp - 0xc]
mov word [edx], ax
mov bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59a733
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59a723
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0059a1d8
mov ebx, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59a80c
lea eax, [ebp - 0x158]
call fcn.004053ec
lea eax, [ebp - 0x154]
mov edx, dword [0x598ed8]
mov ecx, 2
call fcn.00405a58
lea eax, [ebp - 0x148]
call fcn.004053ec
lea eax, [ebp - 0x144]
call fcn.00406080
lea eax, [ebp - 0x134]
call fcn.00406080
lea eax, [ebp - 0x124]
call fcn.00406080
lea eax, [ebp - 0x114]
call fcn.00406080
lea eax, [ebp - 0x104]
call fcn.00406080
lea eax, [ebp - 0xf4]
call fcn.00406080
lea eax, [ebp - 0xe4]
call fcn.00406080
lea eax, [ebp - 0xd4]
call fcn.00406080
lea eax, [ebp - 0x30]
call fcn.00406e54
lea eax, [ebp - 0x28]
mov edx, 3
call fcn.00404cd0
lea eax, [ebp - 0x1c]
call fcn.00406e54
lea eax, [ebp - 0x18]
call fcn.00406e54
lea eax, [ebp - 0x14]
call fcn.00406e54
lea eax, [ebp - 0x10]
call fcn.00406e54
lea eax, [ebp - 4]
call fcn.00404cac
ret