Function at 0x100401d7
Capabilities:
Check os version

Disassembly:
mov eax, 0x10062f12
call fcn.10061518
sub esp, 0xa0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x34], edi
cmp byte [ebp + 8], bl
je 0x100404d1
mov dword [ebp - 0x20], 0x7eab
cmp dword [ebp - 0x20], 0x80ea
jle 0x10040278
push ebx
push 0x10ad
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov esi, ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x4c], 0x7baa
mov edi, ebx
mov esi, ebx
mov ebx, dword [ebp - 0x38]
mov eax, edi
cdq
idiv esi
mov eax, ebx
mov ecx, edx
shl eax, cl
mov ecx, 0x1007d858
cdq
push edx
push eax
call fcn.1000bb8e
inc esi
cmp esi, 0x7022
jl 0x10040231
inc edi
push 0
pop ebx
cmp edi, 0x1bf5
jl 0x1004022c
dec dword [ebp - 0x38]
dec dword [ebp - 0x4c]
jne 0x1004022a
mov esi, dword [ebp - 0x48]
inc esi
mov dword [ebp - 0x48], esi
cmp esi, 0x1806
jl 0x10040220
mov edi, dword [ebp - 0x34]
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x20], 0x7ba7
jge 0x100402b4
mov edx, str.xmtept_mvabhhepc_tkkbxpal_pvtnq_duwlo_ohrl_lgrozpb_pgahmdaly_kikw_mihgjix_olzd_gayyahrw_qgjdoplgk
mov ecx, 0x1007d858
call fcn.1000dfd7
jmp 0x100402b4
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 4], 2
cmp dword [edi + 0x10], ebx
je 0x100404bb
push 0x2e
pop eax
mov word [ebp - 0x28], ax
xor eax, eax
mov byte [ebp - 0x2c], bl
mov byte [ebp - 0x2b], 0x21
mov word [ebp - 0x26], ax
mov dword [ebp - 0x20], 0x5af8
cmp dword [ebp - 0x20], 0x5c6d
jle 0x1004033b
mov esi, ebx
mov edi, ebx
mov eax, edi
lea ecx, [ebp - 0xac]
and eax, esi
cdq
push edx
push eax
call fcn.1000260d
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10040311
mov eax, dword [eax]
push eax
call fcn.1004ae5e
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xac]
call fcn.1000c17a
inc edi
cmp edi, 0x39bb
jl 0x100402f5
inc esi
cmp esi, 0x3472
jl 0x100402f3
mov edi, dword [ebp - 0x34]
xor eax, eax
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
lea ecx, [ebp - 0x88]
lea eax, [ebp - 0x28]
mov dword [ebp - 0x78], ebx
push eax
call fcn.1000c3ca
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 3
push eax
mov edx, edi
lea ecx, [ebp - 0x44]
call fcn.1003e15e
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x88]
call fcn.1000c4ec
cmp dword [ebp - 0x20], 0x5871
jge 0x10040395
push str.hjlcz_nognxr_lyob_wwr_qnugvw_ckux_ust_rqoejg_vwacw_eca_brlgycw_hbxkpt_tlxpvikff
call fcn.1004ae5e
pop ecx
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x44]
push 0x18
cdq
pop ecx
idiv ecx
mov dword [ebp - 0x28], ebx
test eax, eax
jne 0x10040495
push 0x2d
pop eax
push 2
mov ecx, ebx
mov byte [ebp - 0x1c], bl
mov dword [ebp - 0x1b], 0xcb1d021f
mov word [ebp - 0x24], ax
pop esi
mov dword [ebp - 0x30], ecx
cmp esi, 2
jne 0x100403db
push 3
pop ecx
push ecx
mov dword [ebp - 0x30], ecx
pop esi
jmp 0x10040414
movzx edx, byte [ebp + esi - 0x1b]
mov eax, esi
sub eax, ecx
push ebx
movzx eax, byte [ebp + eax - 0x1e]
movzx ecx, word [ebp + eax*2 - 0x24]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x1c]
add ecx, edx
lea edx, [ebp - 0x30]
mov word [ebp + eax*2 - 0x24], cx
mov ecx, 0x6d75
call fcn.100422b6
pop ecx
mov ecx, dword [ebp - 0x30]
add esi, 2
cmp esi, 5
jb 0x100403cc
xor eax, eax
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x22], ax
lea ecx, [ebp - 0x70]
mov word [ebp - 0x70], ax
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 0x60], ebx
call fcn.1000c3ca
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 8
push eax
mov edx, edi
lea ecx, [ebp - 0x94]
call fcn.1003e15e
pop ecx
mov esi, eax
lea eax, [ebp - 0x44]
cmp eax, esi
je 0x1004047b
mov ecx, eax
call fcn.10042cb1
mov ecx, dword [esi]
mov dword [ebp - 0x44], ecx
mov eax, dword [esi + 4]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x3c], eax
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
lea ecx, [ebp - 0x94]
call fcn.10042cb1
push ebx
push 1
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 5
call fcn.1000c4ec
lea eax, [ebp - 0x58]
mov dl, 1
push eax
push ecx
lea eax, [ebp - 0x44]
push eax
push ecx
push ecx
mov ecx, 0x28a1
call fcn.1004015a
add esp, 0x14
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x44]
call fcn.10042cb1
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x58]
push eax
call fcn.10042b2f
lea ecx, [ebp - 0x58]
call fcn.10042d41
jmp 0x100404f4
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
push 0x2036
push 0x260d
push 0x8bd
push 0xa74
push ebx
call dword [sym.imp.USER32.dll_TrackPopupMenu]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret