Function at 0x404200
Capabilities:
Check os version

Disassembly:
sub esp, 0x98
push esi
push edi
mov ecx, 0x25
xor eax, eax
lea edi, [esp + 0xc]
rep stosd dword es:[edi], eax
lea eax, [esp + 0xc]
mov dword [esp + 0xc], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
xor eax, eax
mov edi, 1
cmp dword [esp + 0x1c], 2
sete al
test eax, eax
mov dword [0x410c94], eax
je 0x40424f
mov eax, dword [esp + 0x10]
mov dword [0x410c90], edi
cmp eax, 5
ja 0x404259
mov dword [0x410c90], 0
mov ecx, dword [esp + 0xa4]
push ecx
call fcn.00404700
add esp, 4
test eax, eax
je 0x4046e4
mov esi, dword [esp + 0xac]
test esi, esi
je 0x4042f7
mov al, byte [esi]
test al, al
je 0x4042f7
cmp al, 0x20
jne 0x40428e
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x404286
mov al, byte [esi]
cmp al, 0x2d
je 0x404298
cmp al, 0x2f
jne 0x4042f7
mov al, byte [esi + 1]
inc esi
movsx edx, al
push edx
inc esi
call fcn.00406250
add esp, 4
sub eax, 0x51
je 0x4042c6
sub eax, 2
je 0x4042c0
sub eax, 5
jne 0x4042cc
mov dword [0x410c60], edi
jmp 0x4042c6
mov dword [0x410c5c], edi
mov dword [0x410c58], edi
mov al, byte [esi]
cmp al, 0x20
je 0x4042ed
test al, al
je 0x4042e8
cmp al, 0x2d
je 0x4042e8
cmp al, 0x2f
je 0x4042e8
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x4042d2
jmp 0x4042ed
cmp byte [esi], 0x20
jne 0x40428e
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x4042ed
jmp 0x40428e
call fcn.004047c0
test eax, eax
jne 0x40430e
pop edi
or eax, 0xffffffff
pop esi
add esp, 0x98
ret 0x10
mov eax, dword [0x410c88]
test byte [eax], 2
jne 0x40431d
call fcn.00401dc0
call fcn.00405140
test eax, eax
je 0x4046e4
call fcn.004051c0
test eax, eax
jne 0x404341
pop edi
or eax, 0xffffffff
pop esi
add esp, 0x98
ret 0x10
mov eax, dword [0x410c58]
mov dword [esp + 8], edi
test eax, eax
jne 0x4043be
push 0x41
push edi
push 0
call fcn.00402060
add esp, 8
push eax
call fcn.004020b0
mov esi, eax
add esp, 8
cmp esi, edi
mov dword [esp + 8], esi
jne 0x4046ba
mov eax, dword [0x410c58]
test eax, eax
jne 0x4043b5
call fcn.004024e0
test eax, eax
je 0x4043be
push 0x45
push 0xf
push 0
call fcn.00402060
add esp, 8
push eax
call fcn.004020b0
mov esi, eax
add esp, 8
cmp esi, 2
je 0x4046ba
mov eax, dword [0x410c58]
mov dword [esp + 8], edi
test eax, eax
je 0x40437b
jmp 0x4043be
cmp esi, 2
je 0x4046ba
mov ecx, dword [0x410c88]
push ebx
mov eax, dword [ecx + 4]
test eax, eax
je 0x404551
mov ebx, dword [0x410c54]
lea esi, [eax + ecx]
push ebp
mov ebp, esi
cmp byte [esi], 0x22
jne 0x4043e4
lea ebp, [esi + 1]
cmp byte [ebp], 0x20
jne 0x4043f2
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x4043ea
cmp byte [ebp], 0x23
jne 0x404450
push 0xffdc
push esi
push 0
call fcn.00403880
lea edi, [eax + 1]
push edi
call fcn.0040561b
mov ebx, eax
push edi
push esi
push ebx
call fcn.00403880
mov ecx, ebp
add esp, 0x1c
sub ecx, esi
cmp byte [ecx + ebx], 0x23
jne 0x404450
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jne 0x404450
push ebx
call fcn.00405a1e
mov ebx, dword [0x410c54]
add esp, 4
cmp ebx, dword [0x410c54]
jne 0x4044b7
cmp byte [esi], 0x22
jne 0x404475
mov byte [ebx], 0x22
mov ecx, dword [0x410c50]
lea edx, [ebx + 1]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x404469
jmp 0x404487
mov ecx, dword [0x410c50]
mov edx, ebx
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x40447d
push ebx
call fcn.00401800
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [ebx]
mov esi, ebx
cmp al, 0x22
mov ebp, 0x410cb4
jne 0x404517
lea edi, [ebx + 1]
push 0x22
push edi
call fcn.004054e0
add esp, 8
test eax, eax
je 0x404517
mov dl, byte [eax + 1]
lea ecx, [eax + 1]
test dl, dl
je 0x404517
mov esi, edi
cmp byte [esi], 0x20
jne 0x4044f0
mov dl, byte [esi + 1]
inc esi
cmp dl, 0x20
je 0x4044e7
mov byte [eax], 0
dec eax
cmp eax, esi
jbe 0x404505
cmp byte [eax], 0x20
jne 0x404505
mov byte [eax], 0
dec eax
cmp eax, esi
ja 0x4044f8
mov eax, ecx
cmp byte [eax], 0x20
jne 0x404515
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x40450c
mov ebp, eax
mov eax, dword [0x410c60]
test eax, eax
je 0x404529
mov eax, dword [0x410c5c]
test eax, eax
je 0x40453e
mov eax, dword [0x410c88]
mov ecx, dword [eax]
and ecx, 1
push ecx
push ebp
push esi
call fcn.00401dd0
add esp, 0xc
mov eax, dword [0x410c54]
pop ebp
cmp ebx, eax
je 0x404551
push ebx
call fcn.00405a1e
add esp, 4
mov eax, dword [0x410c58]
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
test eax, eax
pop ebx
jne 0x4045ce
mov edx, dword [0x410ca8]
mov eax, dword [0x410cac]
push 0
push 0x402250
push edx
push 0x6e
push eax
call dword [sym.imp.USER32.dll_CreateDialogParamA]
test eax, eax
mov dword [0x410ca4], eax
je 0x4045ce
push 0x3f1
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [0x410c84]
mov edx, dword [0x410c74]
mov dword [0x410ca0], eax
push 0xb
lea eax, [edx + ecx*2]
mov ecx, dword [0x410c7c]
add eax, ecx
push 0
mov dword [0x410c98], eax
call fcn.00402060
mov ecx, dword [0x410ca4]
add esp, 8
push eax
push 0x3e8
push ecx
call esi
call fcn.00402840
call fcn.00403bb0
mov edi, dword [0x410ca4]
test edi, edi
je 0x4045f7
push 0xc
push 0
call fcn.00402060
add esp, 8
push eax
push 0x3e8
push edi
call esi
call fcn.00402c00
call fcn.00402cc0
mov edi, dword [0x410ca4]
test edi, edi
je 0x404620
push 0xd
push 0
call fcn.00402060
add esp, 8
push eax
push 0x3e8
push edi
call esi
call fcn.00403d10
mov edi, dword [0x410ca4]
test edi, edi
je 0x404644
push 0xe
push 0
call fcn.00402060
add esp, 8
push eax
push 0x3e8
push edi
call esi
call fcn.00402f10
mov eax, dword [0x410ca4]
test eax, eax
je 0x404659
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [0x410c58]
test eax, eax
jne 0x404682
push 2
push 0
call fcn.00402060
add esp, 8
test eax, eax
je 0x404682
cmp byte [eax], 0
je 0x404682
push 0x40
push eax
call fcn.004020b0
add esp, 8
mov eax, dword [0x410c60]
test eax, eax
jne 0x4046b1
mov eax, dword [0x410c5c]
test eax, eax
jne 0x4046b1
mov ecx, dword [0x410c88]
mov eax, dword [ecx + 8]
test eax, eax
je 0x4046b1
add eax, ecx
push str..htm
push eax
call fcn.00401950
add esp, 8
mov esi, dword [esp + 8]
mov edi, 1
call fcn.00405260
call fcn.00402130
cmp esi, edi
jne 0x4046df
mov eax, dword [0x410c60]
test eax, eax
jne 0x4046df
mov eax, dword [0x410c5c]
test eax, eax
jne 0x4046df
call fcn.00403fc0
call fcn.00404790
pop edi
xor eax, eax
pop esi
add esp, 0x98
ret 0x10