Function at 0x41c961
Capabilities:
Check os version

Disassembly:
mov eax, 0x434c92
call fcn.00427498
sub esp, 0xe78
push ebx
push esi
push edi
mov esi, ecx
call fcn.0041c446
test eax, eax
je 0x41cd0c
xor ebx, ebx
cmp dword [0x44542c], ebx
jne 0x41ca62
cmp dword [0x445428], ebx
jne 0x41ca62
cmp byte [esi + 0x401f], bl
jne 0x41ca62
cmp dword [esi + 0x14b4], ebx
jne 0x41ca62
and byte [ebp - 0x47c], bl
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x47b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x47c]
mov ecx, esi
push eax
push dword [0x44476c]
call fcn.0041d6f3
test eax, eax
jne 0x41ca3e
lea eax, [ebp - 0x47c]
mov ecx, esi
push eax
push ebx
call fcn.0041d6f3
test eax, eax
jne 0x41ca3e
mov ecx, esi
call fcn.0041ce8d
test eax, eax
je 0x41ca17
push 1
push ebx
push ebx
push ebx
push dword [0x4366b8]
mov ecx, esi
call fcn.0041d1e0
jmp 0x41ca3a
push dword [0x4366b8]
lea eax, [ebp - 0x47c]
push 0x444c24
push eax
call fcn.00420c44
lea eax, [ebp - 0x47c]
push eax
call fcn.00420de9
test eax, eax
je 0x41ca62
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x47c]
push eax
call fcn.00401072
cmp eax, ebx
jne 0x41ca62
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.0041d808
mov dword [ebp - 0x10], eax
jmp 0x41ca65
mov dword [ebp - 0x10], ebx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], ebx
push eax
push dword [0x44476c]
call fcn.004213be
pop ecx
pop ecx
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
test eax, eax
jne 0x41cab8
lea eax, [ebp - 0x580]
push eax
push dword [0x44476c]
call fcn.0042163d
pop ecx
mov eax, 0x4b8
pop ecx
mov dword [0x445424], eax
lea ecx, [ebp - 0x580]
push ecx
push eax
call fcn.0042045d
pop ecx
pop ecx
jmp 0x41cd0c
mov ebx, 0x400
lea edi, [esi + 0xcac]
push ebx
push 0
push edi
call fcn.00427d00
add esp, 0xc
cmp dword [esi + 0x10ac], 1
jbe 0x41cbd3
cmp dword [esi + 0x14bc], 5
je 0x41cbd3
push ebx
lea eax, [ebp - 0x47c]
push 0
push eax
call fcn.00427d00
lea eax, [ebp - 0x47c]
push 0xa
push eax
push dword [esi + 0x14b8]
call fcn.004295a4
push dword [0x43e670]
lea eax, [ebp - 0x47c]
push eax
call fcn.00426fe0
add esp, 0x20
lea eax, [ebp - 0x47c]
mov ecx, esi
push eax
call fcn.0041ceaa
test eax, eax
je 0x41cb6f
lea eax, [ebp - 0x47c]
push eax
push 0x445024
push edi
call fcn.00420c44
mov ecx, esi
call fcn.0041d16e
test eax, eax
je 0x41cd0c
push 1
push edi
push 0x43e7dc
mov ecx, esi
call fcn.0041d453
mov dword [esi + 0xa0], 1
jmp 0x41cbd3
cmp byte [esi + 0x4040], 0
je 0x41cb9d
lea eax, [ebp - 0x47c]
push eax
lea eax, [esi + 0x2f19]
push eax
push edi
call fcn.00420c44
push 1
push edi
push 0x43e7dc
mov ecx, esi
call fcn.0041d453
jmp 0x41cbd3
mov ecx, esi
call fcn.0041ce1c
test al, al
je 0x41cbc4
mov ecx, esi
call fcn.0041cde3
test al, al
je 0x41cbc4
lea eax, [ebp - 0x47c]
push edi
push eax
mov ecx, esi
call fcn.0041cd5c
jmp 0x41cbd3
lea eax, [ebp - 0x47c]
push eax
push edi
call fcn.00426fd0
pop ecx
pop ecx
cmp dword [ebp - 0x10], 0
mov edi, 0x3e8
jne 0x41cc30
lea eax, [ebp - 0xa84]
push 0x104
push eax
push 0x3e9
push dword [0x4366c0]
lea ecx, [esi + 0x4020]
push dword [0x4366b4]
call fcn.00407585
push 4
mov edi, eax
call fcn.004274b7
pop ecx
mov dword [ebp - 0x18], eax
and dword [ebp - 4], 0
test eax, eax
je 0x41cc24
mov ecx, eax
call fcn.0040f879
jmp 0x41cc26
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [esi + 0x409c], eax
push dword [ebp - 0x10]
mov ecx, dword [esi + 0x409c]
push edi
push esi
push dword [esi + 0x44d4]
call fcn.0040f8a5
lea eax, [ebp - 0x980]
push ebx
push eax
push 0x44e
call fcn.004204d4
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0xc
lea eax, [ebp - 0x980]
push eax
call ebx
test eax, eax
je 0x41cca1
mov edi, 0x43d290
lea eax, [ebp - 0x980]
push edi
push eax
call fcn.00428f80
pop ecx
test eax, eax
pop ecx
je 0x41cca1
inc eax
inc eax
push eax
mov dword [ebp - 0x10], eax
call ebx
test eax, eax
je 0x41cca1
push edi
push dword [ebp - 0x10]
call fcn.00428f80
pop ecx
test eax, eax
pop ecx
jne 0x41ccb6
mov eax, 0x486
push eax
mov dword [0x445424], eax
call fcn.0042045d
jmp 0x41cab2
lea eax, [ebp - 0x40]
push eax
push 1
pop edi
push edi
call fcn.004216cf
pop ecx
lea eax, [ebp - 0x40]
pop ecx
push eax
lea eax, [esi + 0x4ac]
push eax
lea eax, [ebp - 0x980]
push eax
lea eax, [ebp - 0xe84]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0xe84]
mov ecx, esi
push eax
call fcn.0041ce6a
push 0x44f
mov ecx, esi
call fcn.0041ce45
mov ecx, esi
call fcn.0041d417
test eax, eax
jne 0x41cd10
xor eax, eax
jmp 0x41cd4d
push esi
push 0x451
lea ecx, [ebp - 0x7c]
call fcn.004123ac
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], edi
call fcn.00413bd5
test eax, eax
jne 0x41cd31
xor edi, edi
jmp 0x41cd3f
mov eax, dword [ebp - 0x70]
mov dword [esi + 0x44e0], eax
call fcn.0040f91f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7c]
call fcn.00412401
mov eax, edi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret