Function at 0x10031c68
Capabilities:
Check os version

Disassembly:
mov eax, 0x1005fe0f
call fcn.1005e738
sub esp, 0xe0
mov byte [ebp - 0x50], dl
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test cl, cl
je 0x10031cbd
test dl, dl
je 0x10031ca6
xor ebx, ebx
mov byte [ebp - 0x41], bl
cmp byte [ebp - 0x41], bl
je 0x1003255f
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
jmp 0x1003255f
mov eax, dword [ebp + 0xc]
mov dword [eax], 8
mov eax, dword [ebp + 8]
mov dword [eax], 8
jmp 0x1003255f
cmp byte [ebp + 0x14], 0
je 0x10032548
lea eax, [ebp + 0x10]
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0xb0], eax
xor ebx, ebx
mov eax, dword [ebp + 0x18]
xor edx, edx
mov dword [ebp - 0x70], eax
inc edx
mov eax, 0x6b95
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x34], 0xffb91e60
mov dword [ebp - 0x28], 0xfffc
mov dword [ebp - 0x14], ebx
jmp 0x10031d13
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa8], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10031d06
mov dword [ebp - 0x20], 0xffffffed
jmp 0x10031f65
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x14], 0xb79df948
mov dword [ebp - 0x38], 0x12
jmp 0x10031f58
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x2c], 0x8805e531
mov dword [ebp - 0x14], ebx
jmp 0x10031d56
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xd4], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10031d49
mov dword [ebp - 0x24], 3
cmp dword [ebp - 0x24], ebx
jl 0x10031f55
mov dword [ebp - 0x2c], 0x626dac17
mov dword [ebp - 0x18], 0x93498396
call fcn.10032fcf
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x6c]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp + eax*4 - 0x6c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x6c]
cmp edx, eax
setle cl
mov dword [ebp - 0x14], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x68], 0xfffc
cmp eax, 0x219a6fdd
setl cl
xor eax, eax
cmp ecx, 6
setl al
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], ebx
jne 0x10031f3c
cmp dword [ebp - 0x24], ebx
jne 0x10031f3c
mov dword [ebp - 0x40], 0xfff8
xor ecx, ecx
mov dword [ebp - 0x2c], 0x33b947e2
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0x40]
mov eax, dword [ebp - 0x20]
test eax, eax
mov eax, dword [ebp - 0x24]
sets cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x40]
setge dl
xor ecx, ecx
cmp eax, edx
setg cl
xor edx, edx
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x68]
cmp eax, ecx
mov eax, dword [ebp - 0x24]
setne dl
xor ecx, ecx
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + eax*4 - 0x6c]
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], eax
setg cl
add edx, ecx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x34], ebx
jmp 0x10031f30
mov dword [ebp - 0x30], 0x85da4005
mov dword [ebp - 0x40], ebx
jmp 0x10031f23
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], 0x98b3027f
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x1c], ebx
jne 0x10031e92
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, 0x70207789
setg cl
sub ecx, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x14]
imul ecx, dword [ebp - 0x38]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jne 0x10031e92
mov eax, ebx
jmp 0x10031e95
xor eax, eax
inc eax
xor edx, edx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x38]
cmp ecx, eax
setg dl
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
sub edx, eax
mov eax, dword [ebp - 0x28]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x64]
mov esi, dword [ebp - 0x38]
setle cl
xor edx, edx
cmp ecx, eax
setne dl
xor ecx, ecx
imul esi, edx
mov dword [ebp - 0xa8], esi
mov eax, dword [ebp - 0x1c]
cmp esi, eax
setl cl
imul ecx, dword [ebp - 0x30]
inc ecx
mov dword [ebp - 0xd0], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x24]
cmp eax, 0xb496
mov eax, dword [ebp - 0x18]
setge cl
sub ecx, 0x576ff1d2
neg ecx
sbb ecx, ecx
inc ecx
dec dword [ebp - 0x18]
cmp eax, ecx
jl 0x10031f11
xor edx, edx
inc edx
jmp 0x10031f13
mov edx, ebx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x18], ecx
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 3
jle 0x10031e4f
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 3
jle 0x10031e40
jmp 0x10031f49
push 1
mov ecx, 0x1105
call fcn.10031a25
pop ecx
dec dword [ebp - 0x24]
jns 0x10031d6c
xor edx, edx
inc edx
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0x16
jle 0x10031d3a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff3
jle 0x10031d24
xor eax, eax
mov dword [ebp - 0xb4], 7
mov dword [ebp - 0xb8], ebx
mov word [ebp - 0xc8], ax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x3c], 0xcc14173b
mov dword [ebp - 0x18], 0x72fa
mov dword [ebp - 0x1c], 8
mov dword [ebp - 0x30], 0x467b
mov dword [ebp - 0x28], 0xea1bca3
mov dword [ebp - 0x2c], 0xd8e7029b
mov dword [ebp - 0x14], ebx
jmp 0x10031fc8
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x48], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10031fba
cmp dword [ebp - 0x3c], ebx
je 0x10032001
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, 0x1f050678
setg cl
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x48], 0x1b7e280b
jge 0x10031ff7
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
mov ecx, edx
mov eax, dword [ebp - 0x30]
jmp 0x10032003
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x48]
setg dl
xor ecx, ecx
cmp edx, eax
setg cl
dec ecx
cmp ecx, 0x8214
jge 0x1003202a
cmp dword [ebp - 0x48], ebx
je 0x1003202a
xor edx, edx
inc edx
jmp 0x1003202c
mov edx, ebx
dec dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x48]
cmp edx, eax
setl cl
xor eax, eax
add ecx, 0x19570a50
cmp ecx, 0xfffffff8
mov ecx, 0x62b50098
setne al
sub ecx, eax
mov eax, dword [ebp - 0x18]
add eax, ecx
je 0x10032058
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x28]
mov edx, 0x7412
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x18], 0xfffffffc
mov dword [ebp - 0x28], 0xfffffff9
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
neg ecx
push 0x54b
sbb ecx, ecx
xor eax, eax
neg ecx
cmp ecx, 6
push 0x2f5
sete al
imul eax, dword [ebp - 0x3c]
push 0x36d7
push 0x7df1
push 0x3f39
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x3c]
push eax
push ebx
call fcn.10031c3c
push 0x6551
push 0x5069
push 0x156f
push ebx
push 0x2bd0
push 0x154c
push 1
lea eax, [ebp - 0xc8]
mov edx, 0xcb5
push eax
push 0x2f3d
lea eax, [ebp + 0x10]
xor cl, cl
push eax
push 0x581f
call fcn.1003299d
mov dword [ebp - 0x1c], 0x25a1
add esp, 0x48
cmp dword [ebp - 0x1c], 0x2620
jle 0x1003214f
mov esi, ebx
mov edi, esi
mov dword [ebp - 0x18], 0x593
mov dword [ebp - 0x28], ebx
mov eax, edi
mov ecx, 0x10079c18
and eax, ebx
cdq
push edx
push eax
call fcn.100048ed
inc ebx
cmp ebx, 0x53c6
jl 0x10032123
dec edi
dec dword [ebp - 0x18]
push 0
pop ebx
jne 0x10032120
inc esi
cmp esi, 0x1d52
jl 0x10032117
mov byte [ebp - 4], 1
cmp dword [ebp - 0x1c], 0x252e
jge 0x1003218f
mov edx, str.peq_bcibhws_iqguenzz_hlzuklr_fay_mplhab_zwczkr_fspo_qrc
mov ecx, 0x10079c18
call fcn.10006b05
jmp 0x1003218f
mov dword [ebp - 4], ebx
mov eax, dword [0x1076de28]
test al, 1
jne 0x100321c0
or eax, 1
mov dword [0x1076de28], eax
push 0x5fc9
mov byte [ebp - 4], 3
call fcn.10013c0d
mov word [0x1076f1dc], ax
mov byte [ebp - 4], bl
mov eax, dword [0x1076de28]
pop ecx
test al, 2
jne 0x100321e4
or eax, 2
mov dword [0x1076de28], eax
push 0x118e3
mov byte [ebp - 4], 4
call fcn.10013c0d
pop ecx
mov word [0x1076f1d0], ax
mov byte [ebp - 4], bl
mov dword [ebp - 0x80], 0xfffffffc
mov dword [ebp - 0x14], ebx
jmp 0x10032201
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x84], 0xc204e2db
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x100321f0
push 0x33f5
mov ecx, 0x7c63
call fcn.1003278f
lea edx, [ebp - 0x80]
mov dword [esp], 0x6cf0
xor cl, cl
call fcn.1003277a
pop ecx
mov edi, ebx
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0xb0]
cmp edi, dword [eax]
jae 0x100324b3
call fcn.100319ef
push 0x34
pop ecx
xor edx, edx
movdqa xmm0, xmmword [0x1006cdd0]
div ecx
push dword [ebp - 0x84]
lea eax, [ebp - 0xd4]
mov dword [ebp - 0x8c], edx
push eax
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x5c], ebx
push eax
push ebx
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x58], ebx
movdqu xmmword [ebp - 0xe4], xmm0
mov dword [ebp - 0x54], ebx
call fcn.100022f1
mov byte [ebp - 4], 5
mov dword [ebp - 0x1c], 0x2039
cmp dword [ebp - 0x1c], 0x240a
jle 0x100322d2
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov eax, ebx
mov ecx, 0x10079c18
and eax, esi
xor eax, edi
cdq
push edx
push eax
call fcn.100048ed
inc ebx
cmp ebx, 0x7d96
jl 0x1003229e
inc esi
push 0
pop ebx
cmp esi, 0x6e9a
jl 0x1003229b
inc edi
cmp edi, 0x4941
jl 0x10032299
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x4c], 0x18885c6f
mov byte [ebp - 4], 6
cmp dword [ebp - 0x1c], 0x1ee3
jge 0x1003231c
mov edx, str.mof_ohe_npjtt_xnmfv_wtbfczqi_nwadycn_ivmnxv
mov ecx, 0x10079c18
call fcn.10006b05
jmp 0x1003231c
mov dword [ebp - 4], 5
mov dword [ebp - 0x28], 0x5fd0a320
mov dword [ebp - 0x9c], 0xbaf9eb11
mov dword [ebp - 0xa4], 0x7865e1bf
mov dword [ebp - 0x28], 0xf2a6ca0c
mov dword [ebp - 0x94], 0x568c0775
mov dword [ebp - 0x14], ebx
jmp 0x10032365
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xec], 2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10032354
mov dword [ebp - 0x4c], ebx
jmp 0x1003244c
mov dword [ebp - 0x98], 0xe5f36f6d
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x88], 3
mov dword [ebp - 0x28], 0x9b885b3d
push 2
call fcn.100021db
push ecx
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 8
push eax
mov dword [ebp - 0xac], 0xd6158f87
push ecx
mov dword [ebp - 0xa0], 1
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0x90], ebx
call fcn.10032fd9
add esp, 4
mov byte [ebp - 0x42], bl
lea eax, [ebp - 0x42]
mov cl, 1
push eax
push 0x7ba2
call fcn.10031a68
add esp, 0x10
lea eax, [ebp - 0x7c]
lea edx, [ebp - 0xac]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x5c]
push eax
push ecx
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0xa4]
push eax
push ecx
lea eax, [ebp - 0x9c]
push eax
call fcn.10033725
add esp, 0x30
mov byte [ebp - 4], 5
cmp dword [ebp - 0x7c], 0
je 0x10032449
push dword [ebp - 0x7c]
call fcn.10046c84
pop ecx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 3
jle 0x10032373
mov byte [ebp - 4], bl
cmp dword [ebp - 0x5c], 0
je 0x10032471
push dword [ebp - 0x5c]
call fcn.10046c84
pop ecx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
push 0x17e0
push ebx
push 0x1076f1dc
push 0x645f
push 0x1cf1
lea eax, [ebp - 0xc8]
mov ecx, 0x1076f1d0
push eax
push 0x531
push 0x444e
lea edx, [ebp - 0x8c]
call fcn.10031c02
add esp, 0x20
inc edi
mov dword [ebp - 0x18], edi
jmp 0x1003222d
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], ebx
jmp 0x1003251a
mov dword [ebp - 0x14], 0x94a18885
mov dword [ebp - 0x14], 8
jmp 0x10032512
push 0x76b5
push 0x163e
push 0x32d1
push eax
push 0x1db5
push 0x6e1a
push eax
push 0x4f58
push 0x5f0
push 0x40dc
push 0x202a
mov edx, 0x759f
xor cl, cl
call fcn.1003299d
add esp, 0x2c
xor eax, eax
dec dword [ebp - 0x14]
inc eax
cmp dword [ebp - 0x14], eax
jne 0x100324ce
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 7
jle 0x100324be
mov esi, dword [ebp + 0x18]
lea eax, [ebp - 0xc8]
cmp esi, eax
je 0x10032538
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
call fcn.10004d74
push ebx
push 1
lea ecx, [ebp - 0xc8]
call fcn.1000523b
jmp 0x1003255f
push 0
push 0x1d7e
push 0xffc
push 0x920
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret