Function at 0x1001b154
Capabilities:
Check os version
Read .ini file
Set registry value
Suspend thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10089b87
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x240
push ebx
xor ebx, ebx
mov dword [esp + 0x74], edx
push esi
mov dword [esp + 0x10], ebx
push edi
mov dword [esp + 0x80], ecx
mov dword [esp + 0x1c], ebx
jmp 0x1001b19f
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x68], 0xb6bc3ec3
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 1
jl 0x1001b18f
push 0xffffffffffffffff
mov dword [esp + 0x18], ebx
pop esi
jmp 0x1001b256
push 2
lea ecx, [esp + 0xe8]
call fcn.10019343
push 2
mov dword [esp + 0x24], 0x3989226c
mov dword [esp + 0x14], ebx
pop edx
jmp 0x1001b1e4
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1b0], 8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001b1d1
mov dword [esp + 0x10], ebx
jmp 0x1001b206
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xe4]
mov dword [eax + ecx*4], 1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001b1f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1b4]
cmp dword [esp + 0x14], 6
mov eax, dword [esp + 0xe4]
mov dword [eax + 4], ecx
jne 0x1001b23f
mov dword [esp + 0x20], esi
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xe4]
add ecx, dword [eax]
jne 0x1001b23f
mov eax, ebx
jmp 0x1001b242
xor eax, eax
inc eax
mov dword [esp + 0x68], eax
lea ecx, [esp + 0xe4]
call fcn.10019b36
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x19
jne 0x1001b1b2
mov dword [esp + 0x14], 0xfffffff0
jmp 0x1001b28e
mov dword [esp + 0x34], 0x5969a22d
cmp dword [esp + 0x34], ebx
je 0x1001b284
cmp dword [esp + 0x14], ebx
je 0x1001b284
xor eax, eax
inc eax
jmp 0x1001b286
mov eax, ebx
mov dword [esp + 0x68], eax
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffeb
je 0x1001b26b
push 0xfffffffffffffff6
pop edi
mov dword [esp + 0x28], esi
lea ecx, [esp + 0x174]
mov dword [esp + 0x18], edi
push 2
call fcn.10019343
mov dword [esp + 0x28], 0x11e7bff4
xor edx, edx
push 0xfffffffffffffffe
pop eax
mov dword [esp + 0x10], eax
inc edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], 0xe01e6e83
mov dword [esp + 0x18], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], ebx
jmp 0x1001b2f0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x174]
mov dword [eax + ecx*4], 0x2e31d83
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x1001b2da
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebx
jne 0x1001b330
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], edx
jne 0x1001b317
mov ecx, ebx
cmp dword [esp + 0x10], ebx
je 0x1001b319
mov ecx, edx
mov eax, dword [esp + 0x28]
add eax, ecx
neg eax
cmp eax, 0xc8b4
jg 0x1001b32e
cmp dword [esp + 0x10], ebx
jne 0x1001b330
mov edx, ebx
mov eax, dword [esp + 0x28]
xor ecx, ecx
cmp edx, eax
setge cl
sub ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x28]
jne 0x1001b355
cmp dword [esp + 0x2c], ebx
jne 0x1001b355
cmp dword [esp + 0x18], ebx
jne 0x1001b355
mov eax, ebx
jmp 0x1001b358
xor eax, eax
inc eax
mov dword [esp + 0x20], eax
xor ecx, ecx
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x28]
cmp eax, 0x71d69170
setle cl
add ecx, dword [esp + 0x2c]
cmp ecx, 0x372625aa
jge 0x1001b384
cmp dword [esp + 0x10], ebx
jne 0x1001b384
mov edx, ebx
jmp 0x1001b387
xor edx, edx
inc edx
mov eax, dword [esp + 0x174]
xor ecx, ecx
mov dword [eax], 1
mov eax, dword [esp + 0x28]
cmp edx, eax
setl cl
sub ecx, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
inc ecx
neg ecx
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
sub ecx, eax
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x174]
call fcn.10019b36
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esp + 0x28], 0x18
jmp 0x1001bdd2
push 2
lea ecx, [esp + 0x154]
call fcn.10019343
mov dword [esp + 0x1c], ebx
jmp 0x1001b40c
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x150]
mov dword [eax + ecx*4], 7
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jl 0x1001b3f6
mov eax, dword [esp + 0x150]
lea ecx, [esp + 0x150]
mov dword [eax + 4], ebx
call fcn.10019b36
mov dword [esp + 0x1c], 5
lea ecx, [esp + 0x144]
push 1
call fcn.10019343
mov dword [esp + 0x38], 0xfffffffe
mov dword [esp + 0x38], 5
mov dword [esp + 0x38], 0x65256810
mov dword [esp + 0x24], ebx
jmp 0x1001b473
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x144]
mov dword [eax + ecx*4], 0x5d6c05ba
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 1
jl 0x1001b45d
mov eax, dword [esp + 0x144]
lea ecx, [esp + 0x144]
mov dword [esp + 0x254], esi
mov dword [eax], ebx
call fcn.10019b36
mov dword [esp + 0x20], 0x3260389a
cmp dword [esp + 0x28], ebx
je 0x1001b58e
mov dword [esp + 0x24], 0xd29be1d9
mov dword [esp + 0x20], 0xf3d37a5b
mov dword [esp + 0x20], 0xfffffffb
push 4
mov dword [esp + 0x38], 0xcb972524
mov dword [esp + 0x14], ebx
pop ecx
jmp 0x1001b4e4
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x210], 0xc59cdc34
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001b4d1
mov dword [esp + 0x10], ebx
jmp 0x1001b503
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x220], 0xfd43ddca
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001b4f0
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001b52c
push 0x247e
push 0x15b8
push 0x1238
call edi
push eax
call dword [sym.imp.USER32.dll_CheckRadioButton]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x218], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x24], ebx
jle 0x1001b55c
cmp dword [esp + 0x34], ebx
je 0x1001b55c
xor ecx, ecx
inc ecx
jmp 0x1001b55e
mov ecx, ebx
mov dword [esp + 0x224], ecx
xor edx, edx
mov eax, dword [esp + 0x24]
cmp ecx, eax
mov eax, dword [esp + 0x24]
setle dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x1c], ebx
jne 0x1001bddd
jmp 0x1001bdce
mov dword [esp + 0x14], ebx
push 3
mov dword [esp + 0x14], 0xe0648261
mov dword [esp + 0x20], ebx
pop esi
jmp 0x1001b5b6
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1f8], 0xe4fc2285
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x1001b5a3
push 0x12
mov dword [esp + 0x14], 0x13
pop ecx
jmp 0x1001b5e3
mov dword [esp + 0x20], 0x446df37d
cmp dword [esp + 0x20], ebx
jne 0x1001b5e9
mov dword [esp + 0x20], 8
dec dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001b5c9
mov dword [esp + 0x10], 0x15
jmp 0x1001b62f
mov dword [esp + 0x24], 0x72d9ee1c
mov dword [esp + 0x38], 0x4c59cdc3
mov dword [esp + 0x24], ebx
jmp 0x1001b624
mov dword [esp + 0x20], 5
inc dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + eax*4 + 0x1f8]
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 2
jle 0x1001b609
dec dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jne 0x1001b5f3
mov dword [esp + 0x2c], 0x28c7fffa
xor ecx, ecx
mov dword [esp + 0x14], 0xfc07e17f
inc ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], ebx
jmp 0x1001b662
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x58], 0x255d
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ecx
jl 0x1001b652
mov eax, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0x14]
sub eax, 0xa
cmp eax, 0x2d91
mov eax, dword [esp + 0x14]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, 0xffff
setne cl
cmp eax, ecx
sbb eax, eax
inc eax
cmp eax, dword [esp + 0x14]
jg 0x1001b69c
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push 6
pop ecx
sub ecx, eax
imul edx, ecx
cmp edx, dword [esp + 0x14]
jne 0x1001b746
mov dword [esp + 0x1c], ebx
jmp 0x1001b6e3
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x204], 0xf6cbcb1a
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x1001b6d0
mov dword [esp + 0x14], ebx
jmp 0x1001b711
mov eax, dword [esp + 0x14]
cmp dword [esp + eax*4 + 0x204], ebx
jne 0x1001b718
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001b70d
call dword [sym.imp.USER32.dll_DestroyCaret]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x1001b6ef
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001b77d
push 0x1138
push 0x1914
push 0x105d
push 0x6e
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_IntersectClipRect]
jmp 0x1001b77d
mov dword [esp + 0x14], ebx
jmp 0x1001b776
mov dword [esp + 0x10], ebx
jmp 0x1001b76b
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001b767
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_ShowOwnedPopups]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
je 0x1001b752
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x2f
jle 0x1001b74c
xor esi, esi
lea ecx, [esp + 0x15c]
inc esi
push esi
call fcn.10019343
mov dword [esp + 0x254], esi
lea eax, [esp + 0x1e8]
push dword [esp + 0x58]
movdqa xmm0, xmmword [0x1000b1e0]
lea ecx, [esp + 0xd0]
push eax
lea eax, [esp + 0x1e0]
mov dword [esp + 0x24], 3
push eax
push ebx
movdqu xmmword [esp + 0x1e8], xmm0
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
call fcn.1001a85e
mov byte [esp + 0x254], 2
mov dword [esp + 0x1c], 0x1b
jmp 0x1001b88d
push 4
lea ecx, [esp + 0xac]
call fcn.10019343
push 4
mov dword [esp + 0x14], ebx
pop edx
jmp 0x1001b825
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], 0x690f1d89
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001b80f
mov dword [esp + 0x10], ebx
jmp 0x1001b844
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x238], 0x7834d8a9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001b831
mov esi, dword [esp + 0xa8]
mov dword [esi + 0xc], 3
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001b871
push ebx
push 0x1c84
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
dec dword [esi + 0xc]
jns 0x1001b858
cmp dword [esp + 0x244], ebx
lea ecx, [esp + 0xa8]
call fcn.10019b36
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x19
jle 0x1001b7f8
lea ecx, [esp + 0xcc]
mov byte [esp + 0x254], 1
call fcn.10019b36
xor edx, edx
mov dword [esp + 0x1c], ebx
inc edx
jmp 0x1001b8cb
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x15c]
mov dword [eax + ecx*4], 0x82ad
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jl 0x1001b8b5
mov dword [esp + 0x1c], 0xb
cmp dword [esp + 0x1c], 9
jg 0x1001ba21
jmp 0x1001b8e9
xor edx, edx
inc edx
mov dword [esp + 0x10], 0xfce2949f
mov dword [esp + 0x20], 0x9fa85f88
mov dword [esp + 0x30], 0x7e294b58
mov dword [esp + 0x24], ebx
jmp 0x1001b91a
mov eax, dword [esp + 0x24]
mov dword [esp + eax*4 + 0x19c], 0xa2ef7e29
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 2
jl 0x1001b907
mov eax, dword [esp + 0x10]
mov ecx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], 4
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
sub ecx, eax
cmp ecx, dword [esp + 0x10]
jg 0x1001b99f
mov dword [esp + 0x14], ebx
jmp 0x1001b992
mov dword [esp + 0x10], ebx
jmp 0x1001b988
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x19c], ebx
jne 0x1001b98e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jle 0x1001b977
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffd
jl 0x1001b971
dec dword [esp + 0x30]
jmp 0x1001b9b1
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001b9b1
push ebx
call dword [sym.imp.USER32.dll_CharUpperW]
mov eax, dword [esp + 0x2c]
xor edx, edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x2c]
setle dl
imul ecx, edx, 0x3faa
xor edx, edx
cmp ecx, eax
setg dl
xor eax, eax
test edx, edx
setns al
add eax, 0x31b8c97
je 0x1001b9ee
cmp dword [esp + 0x10], ebx
je 0x1001b9ee
xor ecx, ecx
inc ecx
jmp 0x1001b9f0
mov ecx, ebx
xor eax, eax
cmp ecx, 0x6b86
sete al
xor edx, edx
cmp eax, 6
mov eax, dword [esp + 0x28]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x20], ecx
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 9
jle 0x1001b8e6
push dword [esp + 0x58]
movdqa xmm0, xmmword [0x1000b1c0]
lea eax, [esp + 0x1dc]
push eax
lea eax, [esp + 0x1d0]
mov dword [esp + 0x90], ebx
push eax
push ebx
lea ecx, [esp + 0x98]
mov dword [esp + 0x9c], ebx
movdqu xmmword [esp + 0x1d8], xmm0
mov dword [esp + 0xa0], ebx
call fcn.1001a85e
mov byte [esp + 0x254], 3
mov dword [esp + 0x34], 0xfffffffd
mov dword [esp + 0x10], 0xf16de6ea
mov dword [esp + 0x1c], 0xec7e011b
mov dword [esp + 0x24], 0x2d748aee
mov dword [esp + 0x30], 0x307758a8
mov dword [esp + 0x14], 0xfffffffc
mov dword [esp + 0x18], 0x600bf094
mov dword [esp + 0x1c], ebx
jmp 0x1001babe
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x44], 0x7a4a12b5
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x1001baae
cmp dword [esp + 0x48], ebx
je 0x1001bad6
cmp dword [esp + 0x44], ebx
je 0x1001bad6
xor ecx, ecx
inc ecx
jmp 0x1001bad8
mov ecx, ebx
mov eax, dword [esp + 0x34]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x88]
setge dl
xor ecx, ecx
cmp dword [eax + 0xc], edx
setle cl
imul eax, ecx, 0x89b4
test eax, eax
jne 0x1001bb05
cmp dword [esp + 0x10], ebx
je 0x1001bb05
inc eax
jmp 0x1001bb07
mov eax, ebx
mov dword [esp + 0x1c], eax
xor edx, edx
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
setl dl
cmp edx, dword [esp + 0x4c]
jge 0x1001bb24
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x10], ebx
jne 0x1001bb2e
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x30], 0x1422
jg 0x1001bb5a
cmp dword [esp + 0x4c], ebx
jne 0x1001bb5a
mov edx, ebx
jmp 0x1001bb5d
xor edx, edx
inc edx
mov eax, dword [esp + 0x44]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
cmp ecx, eax
setne dl
mov dword [esp + 0x18], edx
cmp dword [esp + 0x18], ebx
je 0x1001bd66
mov dword [esp + 0x30], 0x38be40e
lea ecx, [esp + 0x114]
push 2
call fcn.10019343
mov byte [esp + 0x254], 4
mov dword [esp + 0x24], ebx
jmp 0x1001bbc3
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x114]
mov dword [eax + ecx*4], 0x4edb
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 2
jl 0x1001bbad
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x24], 2
jg 0x1001bd21
mov dword [esp + 0x2c], 0xfffb
mov dword [esp + 0x20], 0xcbd95d60
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], ebx
jl 0x1001bd0c
mov edi, dword [esp + 0x114]
push 2
lea ecx, [esp + 0xf4]
call fcn.10019343
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], ebx
jmp 0x1001bc2c
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xf0]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x1001bc1a
mov eax, dword [esp + 0x14]
cmp dword [esp + eax*4 + 0x44], ebx
je 0x1001bc50
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x30], ebx
je 0x1001bc50
xor esi, esi
inc esi
jmp 0x1001bc52
mov esi, ebx
mov eax, dword [esp + 0xf0]
xor edx, edx
mov dword [eax], 0xb447
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x44]
test eax, eax
mov eax, dword [esp + 0x20]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x14]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setl dl
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
cmp eax, dword [edi + 4]
jge 0x1001bcbe
cmp dword [esp + 0x20], ebx
jne 0x1001bcbe
mov esi, ebx
jmp 0x1001bcc1
xor esi, esi
inc esi
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov edx, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x10]
cmp esi, eax
setge cl
cmp ecx, edx
jl 0x1001bce3
cmp dword [esp + 0x18], ebx
je 0x1001bce3
xor eax, eax
inc eax
jmp 0x1001bce5
mov eax, ebx
mov dword [esp + 0x20], eax
lea ecx, [esp + 0xf0]
cmp dword [esp + 0x2c], ebx
jne 0x1001bd07
call fcn.10019b36
dec dword [esp + 0x14]
jns 0x1001bc02
jmp 0x1001bd0c
call fcn.10019b36
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 2
jle 0x1001bbd9
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esp + 0x10], 0xffffffe3
jmp 0x1001bd51
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001bd4d
push ebx
push 0x2518
push ebx
push 0x15e3
push 0xbc1
call dword [sym.imp.GDI32.dll_ExtCreatePen]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x38
jne 0x1001bd2b
lea ecx, [esp + 0x114]
call fcn.10019b36
jmp 0x1001bd89
mov dword [esp + 0x14], ebx
jmp 0x1001bd82
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001bd7e
push ebx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jle 0x1001bd6c
lea ecx, [esp + 0x88]
call fcn.10019b36
mov dword [esp + 0x14], ebx
jmp 0x1001bdb1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x15c]
mov dword [eax + ecx*4], 5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x1001bd9b
or esi, 0xffffffff
lea ecx, [esp + 0x15c]
mov dword [esp + 0x254], esi
call fcn.10019b36
dec dword [esp + 0x28]
cmp dword [esp + 0x28], 0xfffffff8
jne 0x1001b3e2
mov dword [esp + 0x14], 0x97a4
mov eax, 0x5701
mov dword [esp + 0x28], 0xfbefa5f9
mov dword [esp + 0x34], 9
mov dword [esp + 0x3c], 0x4d2fc5c3
mov dword [esp + 0x30], 4
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x18], ebx
jmp 0x1001be3f
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xb4], 6
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x1001be2c
cmp dword [esp + 0x14], ebx
je 0x1001be6f
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0xb4], ecx
mov eax, dword [esp + 0x14]
cmp ecx, eax
setg dl
imul edx, dword [esp + 0x14]
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
cmp dword [esp + 0xb4], ebx
mov dword [esp + 0x18], ebx
je 0x1001bf1a
jmp 0x1001be9d
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x1e8], 0x632c5b64
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x1001be8a
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x28], ebx
jmp 0x1001befb
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001beca
push ebx
call dword [sym.imp.KERNEL32.dll_HeapDestroy]
mov dword [esp + 0x14], ebx
jmp 0x1001bef0
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001beec
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetBkColor]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jle 0x1001bed0
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 3
jle 0x1001beb8
jmp 0x1001bf9b
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x84], 0xa164e62b
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jl 0x1001bf07
mov eax, dword [esp + 0x28]
mov dword [esp + 0x84], eax
cmp dword [esp + 0x3c], eax
jl 0x1001bf36
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0xbc]
mov eax, dword [esp + 0x30]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x14], ebx
jmp 0x1001bf94
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001bf75
push 0x46e
push ebx
push 0x8f7
push 0x1b97
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001bf90
push ebx
push 0x247d
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x17
jne 0x1001bf52
push dword [esp + 0x58]
movdqa xmm0, xmmword [0x1000b1f0]
lea eax, [esp + 0x1cc]
push eax
lea eax, [esp + 0x1c0]
mov dword [esp + 0x1c], esi
push eax
mov dword [esp + 0x28], 0xfffffff7
lea ecx, [esp + 0x7c]
mov dword [esp + 0x38], 0x7d228d5f
push ebx
movdqu xmmword [esp + 0x1c8], xmm0
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
call fcn.1001a85e
mov dword [esp + 0x254], 5
mov dword [esp + 0x10], 1
mov dword [esp + 0x28], 0xbec0351a
mov dword [esp + 0x18], ebx
jmp 0x1001c020
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x64], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jl 0x1001c014
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 3
jg 0x1001c175
push 1
lea ecx, [esp + 0xc4]
call fcn.10019343
mov dword [esp + 0x30], 0xdbf0cf86
mov dword [esp + 0x20], 0x4b748abb
mov dword [esp + 0x18], ebx
jmp 0x1001c070
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc0]
mov dword [eax + ecx*4], 0x25155467
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jl 0x1001c05a
mov dword [esp + 0x64], 6
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x10]
push 0xfffffffffffffff6
pop edx
mov dword [eax], edx
mov eax, dword [esp + 0x70]
cmp dword [eax + ecx*4], edx
jne 0x1001c0b4
mov eax, dword [esp + 0xc0]
cmp dword [eax], ebx
je 0x1001c0b4
xor esi, esi
inc esi
jmp 0x1001c0b6
mov esi, ebx
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x70]
cmp dword [eax + ecx*4], 1
setg dl
xor ecx, ecx
cmp edx, esi
setle cl
xor eax, eax
test ecx, ecx
sets al
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], 1
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1001c109
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov dword [esp + 0x28], ebx
jmp 0x1001c150
xor ecx, ecx
mov dword [esp + 0x20], 0xc353
mov eax, dword [esp + 0x30]
cmp eax, 5
mov eax, 0xd3
setne cl
sub eax, ecx
cmp dword [esp + 0x28], eax
jge 0x1001c134
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov eax, dword [esp + 0x64]
mov eax, dword [esp + 0x20]
cmp eax, 1
setg cl
mov dword [esp + 0x20], ecx
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 3
jle 0x1001c10f
lea ecx, [esp + 0xc0]
call fcn.10019b36
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jle 0x1001c036
or esi, 0xffffffff
lea ecx, [esp + 0x70]
mov dword [esp + 0x254], esi
call fcn.10019b36
mov dword [esp + 0x54], 0xfffffff8
lea ecx, [esp + 0x180]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x40], 0x69ff4caa
mov dword [esp + 0x6c], 0x3ec3
push 4
call fcn.10019343
mov dword [esp + 0x10], esi
mov dword [esp + 0x34], 0xc5416513
push 4
mov dword [esp + 0x3c], esi
mov dword [esp + 0x1c], ebx
pop edx
jmp 0x1001c1de
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x180]
mov dword [eax + ecx*4], 0xc68ec0ae
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x1001c1c8
mov dword [esp + 0x10], ebx
jmp 0x1001c1fc
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x180]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001c1ea
mov dword [esp + 0x10], ebx
jmp 0x1001c214
mov dword [esp + 0x34], 0xe5c7a00f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jle 0x1001c208
lea ecx, [esp + 0x180]
call fcn.10019b36
mov dword [esp + 0x50], 1
lea ecx, [esp + 0xd8]
mov dword [esp + 0x38], 0x3cdc1821
push 2
call fcn.10019343
mov dword [esp + 0x254], 6
lea ecx, [esp + 0x12c]
xor eax, eax
mov dword [esp + 0x20], 0xb0bf2465
inc eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], 0x859495e0
mov dword [esp + 0x30], 0xa30b9130
mov dword [esp + 0x30], 0xeed08e15
push eax
call fcn.10019343
mov dword [esp + 0x10], ebx
jmp 0x1001c29c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd8]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001c28a
mov dword [esp + 0x10], ebx
jmp 0x1001c2bb
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x12c]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001c2a9
mov esi, dword [esp + 0xd8]
cmp dword [esi + 4], ebx
jne 0x1001c36b
xor eax, eax
mov dword [esp + 0x20], 0xcde6
cmp dword [esi + 4], 1
sete al
xor ecx, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x30]
cmp eax, dword [esi + 4]
mov edx, dword [esi + 4]
setle cl
xor eax, eax
cmp ecx, 4
setle al
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
sub ecx, edx
sub ecx, 0xfffffff8
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setl al
cmp dword [esp + 0x20], eax
jle 0x1001c32b
cmp dword [esp + 0x18], ebx
jne 0x1001c32b
mov edx, ebx
jmp 0x1001c32e
xor edx, edx
inc edx
mov eax, dword [esp + 0xd8]
xor ecx, ecx
push 0
cmp edx, dword [eax]
pop eax
sete cl
add ecx, 0xfff6
setns al
cmp eax, dword [esi + 4]
jne 0x1001c358
cmp dword [esp + 0x20], ebx
je 0x1001c358
xor ecx, ecx
inc ecx
jmp 0x1001c35a
mov ecx, ebx
xor eax, eax
cmp ecx, 1
sete al
cmp eax, dword [esi + 4]
jl 0x1001c36b
mov eax, ebx
jmp 0x1001c36e
xor eax, eax
inc eax
xor ecx, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
cmp eax, 0x51ad5b48
setl cl
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
sub ecx, dword [esi + 4]
mov eax, dword [esp + 0x12c]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
lea ecx, [esp + 0x12c]
call fcn.10019b36
or esi, 0xffffffff
lea ecx, [esp + 0xd8]
mov dword [esp + 0x254], esi
call fcn.10019b36
push 2
pop ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x38], 0x8915ced7
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], 0x6ec6e54e
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ebx
jmp 0x1001c3f3
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x10c], 0xb57f
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x1001c3e0
mov dword [esp + 0x28], 1
cmp dword [esp + 0x28], ebx
jl 0x1001c602
mov dword [esp + 0x30], 0xfb807cfa
mov dword [esp + 0x20], 3
mov dword [esp + 0x1c], 0xcc424770
mov dword [esp + 0x34], 0x790660d6
mov dword [esp + 0x18], ebx
jmp 0x1001c444
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xfc], 0x8ab5457d
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x1001c431
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + eax*4 + 0x10c]
mov eax, dword [esp + 0x10]
inc dword [esp + 0x10]
cmp ecx, eax
jg 0x1001c467
mov dword [esp + 0x18], ebx
jmp 0x1001c61b
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x230], 0xdb2213aa
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x1001c608
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
cmp eax, 0x6974edf0
setg cl
cmp dword [esp + 0x14], ecx
jge 0x1001c647