Function at 0x401b90
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x407520
push 0x404c7c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b8
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
xor edi, edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0xc4], 0x94
push 0x90
push edi
lea eax, [ebp - 0xc0]
push eax
call sub.ntdll.dll_memset
add esp, 0xc
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 4], edi
lea ecx, [ebp - 0xc4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x401e5d
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xbc]
cmp ecx, 5
jne 0x401c21
cmp eax, edi
jbe 0x401c21
mov edx, 0xc039
mov word [0x420418], dx
jmp 0x401c4e
cmp ecx, 6
jne 0x401c41
cmp eax, 2
jae 0x401c41
xor ecx, ecx
cmp eax, 1
sete cl
lea ecx, [ecx + ecx + 0xc03a]
mov word [0x420418], cx
cmp word [0x420418], di
je 0x401e5d
mov eax, 0xc
call sub.ntdll.dll__alloca_probe
mov dword [ebp - 0x18], esp
mov esi, esp
cmp esi, edi
je 0x401c72
mov eax, esi
mov ebx, 9
mov edx, 0x40a10c
call fcn.0040449f
mov eax, 0x1c
call sub.ntdll.dll__alloca_probe
mov dword [ebp - 0x18], esp
mov eax, esp
test eax, eax
je 0x401c94
mov ebx, 0x18
mov edx, 0x40a118
call fcn.0040449f
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x401e5d
mov eax, 0x18
call sub.ntdll.dll__alloca_probe
mov dword [ebp - 0x18], esp
mov eax, esp
test eax, eax
je 0x401ccf
mov ebx, 0x17
mov edx, 0x40a130
call fcn.0040449f
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x420420], eax
test eax, eax
je 0x401e5d
lea edx, [ebp - 0x20]
push edx
push 0
push 0
push 0xb
call edi
test eax, eax
je 0x401e5d
mov eax, dword [ebp - 0x20]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x401e5d
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x20]
push edx
push eax
push 0xb
call edi
test eax, eax
jne 0x401e5d
mov byte [ebp - 0x1c8], al
push 0x103
push eax
lea ecx, [ebp - 0x1c7]
push ecx
call sub.ntdll.dll_memset
add esp, 0xc
xor ebx, ebx
mov edi, dword [sym.imp.ntdll.dll_strstr]
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 0x1c]
cmp ebx, dword [eax]
jae 0x401dac
mov edx, ebx
imul edx, edx, 0x11c
lea esi, [edx + eax + 0x20]
push 0x40567c
push esi
call edi
add esp, 8
test eax, eax
je 0x401e83
push 0x405680
push esi
call edi
add esp, 8
test eax, eax
je 0x401e83
mov ecx, eax
lea edx, [ebp - 0x1c8]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x401d92
imul ebx, ebx, 0x11c
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebx + eax + 0xc]
mov dword [ebp - 0x28], ecx
lea edx, [ebp - 0x1c8]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
mov dword [ebp - 0x24], esi
test esi, esi
je 0x401e5d
mov edi, dword [ebp - 0x28]
test edi, edi
je 0x401e5d
mov eax, 0x1c
call sub.ntdll.dll__alloca_probe
mov dword [ebp - 0x18], esp
mov eax, esp
test eax, eax
je 0x401df3
mov ebx, 0x1a
mov edx, 0x40a148
call fcn.0040449f
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x420410], eax
test eax, eax
je 0x401e5d
mov ecx, edi
sub ecx, esi
add eax, ecx
mov dword [0x420410], eax
mov eax, 0x18
call sub.ntdll.dll__alloca_probe
mov dword [ebp - 0x18], esp
mov eax, esp
test eax, eax
je 0x401e31
mov ebx, 0x17
mov edx, 0x40a164
call fcn.0040449f
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x42041c], eax
test eax, eax
je 0x401e5d
sub edi, esi
add eax, edi
mov dword [0x42041c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [0x42040c], eax
mov dword [ebp - 0x2c], 1
mov dword [ebp - 4], 0xffffffff
call fcn.00401e89
mov eax, dword [ebp - 0x2c]
lea esp, [ebp - 0x1d4]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc ebx
jmp 0x401d4e