Function at 0x5b181c
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2f
push 0
push 0
dec ecx
jne 0x5b1824
push ecx
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x5b20b2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.00404cac
xor edx, edx
push ebp
push 0x5b2076
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0xa0]
xor ecx, ecx
mov edx, 0x9c
call fcn.0040359c
mov dword [ebp - 0xa0], 0x9c
lea eax, [ebp - 0xa0]
push eax
call sub.kernel32.dll_GetVersionExA_2
test eax, eax
jne 0x5b1899
mov eax, ebx
mov edx, 0x5b20c8
call fcn.00404d00
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5b208c
mov eax, dword [ebp - 0x90]
sub eax, 1
jb 0x5b1f70
je 0x5b18b2
dec eax
je 0x5b18ff
jmp 0x5b1f7c
mov eax, dword [ebp - 0x98]
sub eax, 1
jb 0x5b18cc
sub eax, 9
je 0x5b18dd
sub eax, 0x50
je 0x5b18ee
jmp 0x5b1f7c
mov eax, ebx
mov edx, 0x5b20d8
call fcn.00404d00
jmp 0x5b1f7c
mov eax, ebx
mov edx, 0x5b20ec
call fcn.00404d00
jmp 0x5b1f7c
mov eax, ebx
mov edx, 0x5b2100
call fcn.00404d00
jmp 0x5b1f7c
mov eax, dword [ebp - 0x9c]
cmp eax, 3
jne 0x5b1923
mov eax, ebx
mov edx, 0x5b2114
call fcn.00404d00
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5b208c
cmp eax, 4
jne 0x5b1941
mov eax, ebx
mov edx, 0x5b212c
call fcn.00404d00
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5b208c
mov edi, dword [ebp - 0x9c]
cmp edi, 5
jne 0x5b196e
cmp dword [ebp - 0x98], 0
jne 0x5b196e
mov eax, ebx
mov edx, 0x5b2144
call fcn.00404d00
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5b208c
lea eax, [ebp - 4]
call fcn.00404cac
mov si, word [ebp - 8]
mov eax, esi
and ax, 0x200
cmp ax, 0x200
jne 0x5b1993
lea eax, [ebp - 4]
mov edx, 0x5b215c
call fcn.00404d44
mov eax, esi
and ax, 2
cmp ax, 2
jne 0x5b19ac
lea eax, [ebp - 4]
mov edx, 0x5b216c
call fcn.00404d44
cmp byte [ebp - 6], 1
jne 0x5b1c4d
sub edi, 5
je 0x5b19d0
dec edi
je 0x5b1a9a
sub edi, 4
je 0x5b1bfe
jmp 0x5b1f7c
mov eax, dword [ebp - 0x98]
dec eax
je 0x5b19e1
dec eax
je 0x5b1a4b
jmp 0x5b1f7c
cmp dword [ebp - 4], 0
je 0x5b19f4
lea eax, [ebp - 4]
mov edx, 0x5b2180
call fcn.00404f88
push 0x5b2194
push dword [ebp - 4]
lea eax, [ebp - 0xac]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0xac]
lea edx, [ebp - 0xa8]
call fcn.0040ab1c
push dword [ebp - 0xa8]
lea eax, [ebp - 0xa4]
mov edx, 3
call fcn.00405040
mov eax, dword [ebp - 0xa4]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
lea eax, [ebp - 0xb8]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0xb8]
lea edx, [ebp - 0xb4]
call fcn.0040ab1c
mov ecx, dword [ebp - 0xb4]
lea eax, [ebp - 0xb0]
mov edx, 0x5b21a8
call fcn.00404fcc
mov eax, dword [ebp - 0xb0]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
mov eax, dword [ebp - 0x98]
sub eax, 1
jb 0x5b1aba
je 0x5b1b11
dec eax
je 0x5b1b60
dec eax
je 0x5b1baf
jmp 0x5b1f7c
push 0x5b21cc
push dword [ebp - 4]
lea eax, [ebp - 0xc4]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0xc4]
lea edx, [ebp - 0xc0]
call fcn.0040ab1c
push dword [ebp - 0xc0]
lea eax, [ebp - 0xbc]
mov edx, 3
call fcn.00405040
mov eax, dword [ebp - 0xbc]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
lea eax, [ebp - 0xd0]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0xd0]
lea edx, [ebp - 0xcc]
call fcn.0040ab1c
mov ecx, dword [ebp - 0xcc]
lea eax, [ebp - 0xc8]
mov edx, 0x5b21e4
call fcn.00404fcc
mov eax, dword [ebp - 0xc8]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
lea eax, [ebp - 0xdc]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0xdc]
lea edx, [ebp - 0xd8]
call fcn.0040ab1c
mov ecx, dword [ebp - 0xd8]
lea eax, [ebp - 0xd4]
mov edx, 0x5b21f8
call fcn.00404fcc
mov eax, dword [ebp - 0xd4]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
lea eax, [ebp - 0xe8]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0xe8]
lea edx, [ebp - 0xe4]
call fcn.0040ab1c
mov ecx, dword [ebp - 0xe4]
lea eax, [ebp - 0xe0]
mov edx, 0x5b220c
call fcn.00404fcc
mov eax, dword [ebp - 0xe0]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
lea eax, [ebp - 0xf4]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0xf4]
lea edx, [ebp - 0xf0]
call fcn.0040ab1c
mov ecx, dword [ebp - 0xf0]
lea eax, [ebp - 0xec]
mov edx, 0x5b2224
call fcn.00404fcc
mov eax, dword [ebp - 0xec]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
sub edi, 5
je 0x5b1c67
dec edi
je 0x5b1dcb
sub edi, 4
je 0x5b1f24
jmp 0x5b1f7c
mov eax, dword [ebp - 0x98]
dec eax
je 0x5b1c78
dec eax
je 0x5b1cc7
jmp 0x5b1f7c
lea eax, [ebp - 0x100]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0x100]
lea edx, [ebp - 0xfc]
call fcn.0040ab1c
mov ecx, dword [ebp - 0xfc]
lea eax, [ebp - 0xf8]
mov edx, 0x5b2194
call fcn.00404fcc
mov eax, dword [ebp - 0xf8]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
and si, 0x8000
cmp si, 0x8000
jne 0x5b1d22
lea eax, [ebp - 0x10c]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0x10c]
lea edx, [ebp - 0x108]
call fcn.0040ab1c
mov ecx, dword [ebp - 0x108]
lea eax, [ebp - 0x104]
mov edx, 0x5b2238
call fcn.00404fcc
mov eax, dword [ebp - 0x104]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
push 0x59
call sub.user32.dll_GetSystemMetrics
test eax, eax
jne 0x5b1d7c
lea eax, [ebp - 0x118]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0x118]
lea edx, [ebp - 0x114]
call fcn.0040ab1c
mov ecx, dword [ebp - 0x114]
lea eax, [ebp - 0x110]
mov edx, 0x5b2258
call fcn.00404fcc
mov eax, dword [ebp - 0x110]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
lea eax, [ebp - 0x124]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0x124]
lea edx, [ebp - 0x120]
call fcn.0040ab1c
mov ecx, dword [ebp - 0x120]
lea eax, [ebp - 0x11c]
mov edx, 0x5b2278
call fcn.00404fcc
mov eax, dword [ebp - 0x11c]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
mov eax, dword [ebp - 0x98]
sub eax, 1
jb 0x5b1deb
je 0x5b1e3a
dec eax
je 0x5b1e89
dec eax
je 0x5b1ed8
jmp 0x5b1f7c
lea eax, [ebp - 0x130]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0x130]
lea edx, [ebp - 0x12c]
call fcn.0040ab1c
mov ecx, dword [ebp - 0x12c]
lea eax, [ebp - 0x128]
mov edx, 0x5b2298
call fcn.00404fcc
mov eax, dword [ebp - 0x128]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
lea eax, [ebp - 0x13c]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0x13c]
lea edx, [ebp - 0x138]
call fcn.0040ab1c
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x134]
mov edx, 0x5b22b8
call fcn.00404fcc
mov eax, dword [ebp - 0x134]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
lea eax, [ebp - 0x148]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0x148]
lea edx, [ebp - 0x144]
call fcn.0040ab1c
mov ecx, dword [ebp - 0x144]
lea eax, [ebp - 0x140]
mov edx, 0x5b22d8
call fcn.00404fcc
mov eax, dword [ebp - 0x140]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
lea eax, [ebp - 0x154]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0x154]
lea edx, [ebp - 0x150]
call fcn.0040ab1c
mov ecx, dword [ebp - 0x150]
lea eax, [ebp - 0x14c]
mov edx, 0x5b22f8
call fcn.00404fcc
mov eax, dword [ebp - 0x14c]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
lea eax, [ebp - 0x160]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0x160]
lea edx, [ebp - 0x15c]
call fcn.0040ab1c
mov ecx, dword [ebp - 0x15c]
lea eax, [ebp - 0x158]
mov edx, 0x5b2318
call fcn.00404fcc
mov eax, dword [ebp - 0x158]
mov edx, ebx
call fcn.0040ab1c
jmp 0x5b1f7c
mov eax, ebx
mov edx, 0x5b2348
call fcn.00404d00
lea edx, [ebp - 0x164]
mov eax, dword [ebx]
call fcn.005b1724
mov edx, dword [ebp - 0x164]
mov eax, ebx
call fcn.00404d00
cmp dword [ebx], 0
jne 0x5b2049
mov eax, dword [ebp - 0x9c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x16c]
call fcn.0040aedc
push dword [ebp - 0x16c]
push 0x5b235c
mov eax, dword [ebp - 0x98]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x170]
call fcn.0040aedc
push dword [ebp - 0x170]
push 0x5b2368
mov eax, dword [ebp - 0x94]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x174]
call fcn.0040aedc
push dword [ebp - 0x174]
push 0x5b2378
lea eax, [ebp - 0x17c]
lea edx, [ebp - 0x8c]
mov ecx, 0x80
call fcn.00404f14
mov eax, dword [ebp - 0x17c]
lea edx, [ebp - 0x178]
call fcn.0040ab1c
push dword [ebp - 0x178]
lea eax, [ebp - 0x168]
mov edx, 7
call fcn.00405040
mov eax, dword [ebp - 0x168]
mov edx, ebx
call fcn.0040ab1c
call fcn.005b5400
test al, al
je 0x5b2060
mov eax, ebx
mov edx, 0x5b2384
call fcn.00404f88
jmp 0x5b206c
mov eax, ebx
mov edx, 0x5b2398
call fcn.00404f88
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5b208c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5b20b9
lea eax, [ebp - 0x17c]
mov edx, 0x37
call fcn.00404cd0
lea eax, [ebp - 4]
call fcn.00404cac
ret