Function at 0x1000118c
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10063a01
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
mov eax, edx
mov dword [esp + 0x38], ecx
push ebx
push esi
push edi
cmp byte [eax], 0x50
mov dword [esp + 0x2c], eax
jne 0x10001bc5
cmp byte [eax + 1], 0x4b
jne 0x10001bc5
push 3
pop esi
push 2
pop edi
mov dword [esp + 0x30], esi
lea ecx, [esp + 0xb4]
mov dword [esp + 0x1c], 0xfffffffe
mov dword [esp + 0x28], 0x2751c76d
push edi
call fcn.10001ed2
xor ebx, ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x14], ebx
jmp 0x1000121a
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xb4]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x10001208
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0xb4]
mov dword [eax], ecx
lea ecx, [esp + 0xb4]
dec dword [esp + 0x34]
call fcn.10001f55
mov ecx, dword [esp + 0x2c]
mov al, byte [ecx + 2]
mov cl, byte [ecx + 3]
mov dword [esp + 0xc], 0xffffffff
movzx eax, al
mov dword [esp + 0x1c], 0x5f40e13f
add eax, 4
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x1a], cl
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ebx
jmp 0x10001287
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x64], 0xfffffffe
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10001277
mov dword [esp + 0xc], edi
cmp dword [esp + 0xc], ebx
jl 0x1000136c
mov dword [esp + 0x14], 0x46df37d4
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x100012bb
push ebx
push ebx
push 0x82e
push ebx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
mov dword [esp + 0x14], ebx
jmp 0x10001358
mov dword [esp + 0x24], 0x5664dc9e
mov dword [esp + 0x24], edi
cmp dword [esp + 0x24], ebx
jl 0x10001354
mov dword [esp + 0x10], 8
mov dword [esp + 0x10], ebx
jmp 0x100012f9
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x100012f5
push ebx
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x100012e4
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], ebx
jl 0x1000134e
mov dword [esp + 0x20], 0x45fe46c2
mov dword [esp + 0x20], edi
cmp dword [esp + 0x20], ebx
jl 0x1000133e
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x10001338
push ebx
push ebx
push 0xe2f
push 0x20d1
push ebx
call dword [sym.imp.USER32.dll_InsertMenuW]
dec dword [esp + 0x20]
jns 0x1000131b
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x64], ebx
jne 0x1000134e
dec dword [esp + 0x10]
jns 0x10001309
dec dword [esp + 0x24]
jns 0x100012d6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x100012c4
dec dword [esp + 0xc]
jns 0x1000129b
mov eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x6c]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
mov eax, dword [esp + 0x6c]
setg cl
add eax, ecx
je 0x100013b4
cmp dword [esp + 0xc], ebx
je 0x100013b4
xor eax, eax
inc eax
jmp 0x100013b6
mov eax, ebx
xor ecx, ecx
test eax, eax
setle cl
xor eax, eax
cmp ecx, 0x7ae9f903
setl al
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ebx
jmp 0x100013e2
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x40], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x100013d2
mov dword [esp + 0x40], ebx
jmp 0x10001403
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x100013ff
call dword [sym.imp.GDI32.dll_GdiFlush]
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 4
jge 0x100013ef
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
movzx esi, byte [esp + 0x1a]
add esi, 0x18
add esi, ecx
mov edx, dword [ecx + eax]
mov ecx, dword [ecx + eax + 0x14]
call fcn.10001180
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x70]
mov eax, dword [esp + 0x2c]
add eax, esi
mov dword [esp + 0x10], 0xfffffffa
push 1
mov dword [esp + 0x3c], eax
call fcn.10001ed2
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x14], ebx
jmp 0x10001465
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x10001456
mov dword [esp + 0x10], 0xffffffee
jmp 0x100015a4
mov dword [esp + 0x14], ebx
jmp 0x1000148f
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x48], 0xf251d69f
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1000147f
mov dword [esp + 0x48], 0x15
jmp 0x10001572
push 1
lea ecx, [esp + 0xe0]
call fcn.10001ed2
push edi
lea ecx, [esp + 0xec]
mov byte [esp + 0x130], 1
call fcn.10001ed2
xor edx, edx
mov dword [esp + 0x1c], 4
mov dword [esp + 0xc], ebx
inc edx
jmp 0x100014ed
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xdc]
mov dword [eax + ecx*4], 0x82e5
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x100014d7
mov dword [esp + 0xc], ebx
jmp 0x1000150f
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xe8]
mov dword [eax + ecx*4], 0x7392
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x100014f9
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x50], ebx
je 0x10001527
mov esi, edx
cmp dword [esp + 0x48], ebx
jne 0x10001529
mov esi, ebx
mov eax, dword [esp + 0x50]
xor ecx, ecx
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp esi, eax
mov eax, dword [esp + 0x70]
sete cl
cmp ecx, 0xe55a4419
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
lea ecx, [esp + 0xe8]
mov dword [esp + 0x1c], edx
call fcn.10001f55
lea ecx, [esp + 0xdc]
mov byte [esp + 0x12c], bl
call fcn.10001f55
dec dword [esp + 0x48]
cmp dword [esp + 0x48], 0xfffffffd
jge 0x100014a3
mov byte [esp + 0x1a], bl
cmp byte [esp + 0x1a], 0
je 0x100015a0
push ebx
push 0x12f5
push ebx
push 0x915
push ebx
push 0x13f
call dword [sym.imp.USER32.dll_DrawTextExW]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x1a
je 0x10001479
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x70]
cmp dword [eax], 0xf851
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x70]
setg cl
add eax, ecx
xor ecx, ecx
cmp dword [esi], eax
setge cl
xor eax, eax
cmp ecx, 0x5f885928
setne al
xor ecx, ecx
cmp eax, 1
mov eax, dword [esp + 0x10]
setle cl
xor edx, edx
cmp ecx, 0xc74b
setne dl
add eax, 3
mov dword [esi], edx
add eax, edx
je 0x10001602
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, 0x6406
setl cl
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x70]
or dword [esp + 0x12c], 0xffffffff
call fcn.10001f55
mov dword [esp + 0xc], 0x98cafa32
lea ecx, [esp + 0x88]
mov dword [esp + 0x1c], ebx
push 1
call fcn.10001ed2
push edi
lea ecx, [esp + 0xc4]
mov dword [esp + 0x130], edi
call fcn.10001ed2
mov dword [esp + 0x24], 5
mov dword [esp + 0x1c], 0x3c10b42b
mov dword [esp + 0x10], ebx
jmp 0x1000167c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x88]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x10001669
mov dword [esp + 0x10], ebx
jmp 0x1000169b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc0]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10001689
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
neg eax
sbb eax, eax
neg eax
cmp eax, 1
sbb eax, eax
xor edx, edx
neg eax
imul eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
cmp ecx, eax
setle dl
cmp edx, dword [esp + 0xc]
jl 0x100016e9
mov eax, dword [esp + 0x88]
cmp dword [eax], ebx
jne 0x100016e9
cmp dword [esp + 0xc], ebx
jne 0x100016e9
mov ecx, ebx
jmp 0x100016ec
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0xc0]
mov dword [eax], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x88]
xor eax, eax
cmp dword [ecx], 1
mov edx, dword [ecx]
sete al
xor ecx, ecx
imul eax, eax, 0xc6eb
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
cmp eax, 4
setne cl
xor eax, eax
cmp ecx, edx
lea ecx, [esp + 0xc0]
setl al
sub eax, edx
neg eax
sbb eax, eax
add eax, 3
neg eax
sbb eax, eax
inc eax
add eax, dword [esp + 0xc]
imul eax, eax, 0xf01c
mov dword [esp + 0x1c], eax
call fcn.10001f55
or dword [esp + 0x12c], 0xffffffff
lea ecx, [esp + 0x88]
call fcn.10001f55
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x34]
push dword [esp + 0x28]
movdqa xmm0, xmmword [0x10072fc0]
mov dword [eax], ecx
lea eax, [esp + 0x114]
push eax
shr ecx, 2
lea eax, [esp + 0x108]
inc ecx
mov dword [esp + 0x1c], 9
push eax
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x64]
mov dword [esp + 0x1c], 0x20bd2ab
mov dword [esp + 0x18], 0x677b568b
push ebx
movdqu xmmword [esp + 0x110], xmm0
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
call fcn.10001fbb
mov dword [esp + 0x44], 0x12f6
xor edx, edx
mov dword [esp + 0x14], 0xda4d073f
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
cmp eax, ecx
setge dl
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x58]
xor eax, eax
mov dword [esp + 0x54], esi
cmp dword [esi + 8], 0x2456160c
setne al
xor ecx, ecx
cmp eax, dword [esi + 8]
mov eax, dword [esp + 0x14]
setle cl
xor edx, edx
cmp eax, ecx
setl dl
xor ecx, ecx
mov eax, dword [esp + 0x58]
push 3
pop edi
cmp edx, dword [eax]
setg cl
mov dword [eax], ecx
mov dword [esp + 0xc], ebx
jmp 0x100019c3
mov dword [esp + 0x20], 0x6e85fcb
mov dword [esp + 0x24], 0x8c46158e
mov dword [esp + 0x1c], 0x81f6
mov dword [esp + 0x10], ebx
jmp 0x10001878
mov byte [esp + 0x1a], bl
cmp byte [esp + 0x1a], 0
je 0x10001874
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAdjustment]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x10001860
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
imul eax, dword [esp + 0xc]
cmp eax, 1
sbb ecx, ecx
inc ecx
sub ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x14]
je 0x100018db
cmp dword [esp + 0xc], ebx
je 0x100018db
cmp dword [esi + 8], ebx
je 0x100018db
xor ecx, ecx
inc ecx
jmp 0x100018dd
mov ecx, ebx
xor eax, eax
cmp ecx, 0xfffffff7
setne al
cmp eax, 0xbe776e9f
sbb eax, eax
inc eax
cmp eax, 0xffffffff
jg 0x10001903
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x58]
cmp dword [eax + ecx*4], ebx
jne 0x10001903
mov eax, ebx
jmp 0x10001906
xor eax, eax
inc eax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], ebx
je 0x100019ac
mov dword [esp + 0x24], 0x8d9a65c8
xor edx, edx
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x28], 6
dec dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
mov eax, dword [esp + 0x24]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x1c]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x58]
setle dl
xor ecx, ecx
inc edx
cmp edx, dword [eax + esi*4]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
setg cl
mov esi, dword [esp + 0x54]
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, dword [esi + 8]
setg al
cmp dword [esp + 0x14], eax
jge 0x1000199c
cmp dword [esp + 0x1c], ebx
jne 0x1000199c
mov ecx, ebx
jmp 0x1000199f
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x10]
imul eax, ecx
mov dword [esp + 0x28], eax
jmp 0x100019bf
mov byte [esp + 0x1a], bl
cmp byte [esp + 0x1a], 0
je 0x100019bf
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommState]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jle 0x10001842
lea ecx, [esp + 0x58]
call fcn.10001f55
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], ebx
mov eax, dword [ecx + esi]
mov dword [esp + 0xcc], eax
mov eax, dword [ecx + esi + 4]
mov dword [esp + 0xd0], eax
mov eax, dword [ecx + esi + 8]
mov dword [esp + 0xd4], eax
mov eax, dword [ecx + esi + 0xc]
mov dword [esp + 0xd8], eax
jbe 0x10001ebd
sub esi, dword [esp + 0x38]
push dword [esp + 0x28]
movdqa xmm0, xmmword [0x10072f60]
lea eax, [esp + 0x124]
push eax
lea eax, [esp + 0x118]
mov dword [esp + 0x1c], ebx
push eax
mov dword [esp + 0x2c], 0x29a2a67f
lea ecx, [esp + 0x88]
push ebx
movdqu xmmword [esp + 0x120], xmm0
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
call fcn.10001fbb
push 1
lea ecx, [esp + 0x98]
mov dword [esp + 0x130], edi
call fcn.10001ed2
xor edx, edx
mov dword [esp + 0x10], ebx
inc edx
jmp 0x10001aa3
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x94]
mov dword [eax + ecx*4], 0xfe8e60a2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10001a8d
mov dword [esp + 0x10], ebx
jmp 0x10001abf
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x3c], 4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10001aaf
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov eax, dword [esp + 0x14]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x7c]
setge cl
mov dword [eax + 8], ecx
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x94]
mov edx, dword [eax]
mov eax, dword [esp + 0x14]
cmp eax, 0xcde3
setl cl
imul ecx, dword [esp + 0x20]
imul eax, ecx, 6
xor ecx, ecx
cmp eax, 0x6acb8f2b
setle cl
xor eax, eax
imul ecx, edx
cmp ecx, edx
setle al
cmp eax, 1
jl 0x10001b2e
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
cmp eax, 1
mov eax, dword [esp + 0x3c]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x94]
setne cl
mov dword [eax], ecx
lea ecx, [esp + 0x94]
call fcn.10001f55
or dword [esp + 0x12c], 0xffffffff
lea ecx, [esp + 0x7c]
call fcn.10001f55
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
and edx, edi
mov ecx, dword [eax]
mov edx, dword [esp + edx*4 + 0xcc]
call fcn.10001180
mov ecx, dword [esp + 0x38]
mov dword [esi + ecx], eax
add ecx, 4
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x34]
jb 0x10001a1c
jmp 0x10001ebd
mov dword [esp + 0x1c], 0x52061f6
lea ecx, [esp + 0xa8]
xor eax, eax
xor ebx, ebx
inc eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x28], 0x8f5f4990
push 4
mov dword [esp + 0x18], eax
pop edi
mov dword [esp + 0x20], 0xf72b5725
mov dword [esp + 0x10], ebx
mov dword [esp + 0x34], 0x5f7919ad
push edi
call fcn.10001ed2
push 3
pop esi
push esi
lea ecx, [esp + 0xf8]
mov dword [esp + 0x130], edi
call fcn.10001ed2
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], 1
push 2
mov dword [esp + 0x58], 0xfffffffa
mov dword [esp + 0x10], ebx
pop edi
jmp 0x10001c4d
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xa0], 0xe6e7f737
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x10001c3a
mov dword [esp + 0xc], ebx
jmp 0x10001c6f
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], 1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x10001c59
mov dword [esp + 0xc], ebx
jmp 0x10001c92
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xf4]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x10001c7c
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
add eax, 0xbc37
mov dword [esp + 0xa4], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa4]
dec dword [esp + 0x30]
jne 0x10001ccf
cmp dword [esp + 0x34], ebx
jne 0x10001ccf
mov ecx, ebx
jmp 0x10001cd2
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 5
sete al
xor ecx, ecx
cmp eax, 0x2aee5a98
setl cl
xor eax, eax
imul ecx, dword [esp + 0x14]
cmp ecx, 1
setg al
cmp eax, dword [esp + 0x34]
jl 0x10001e94
mov dword [esp + 0x1c], 0x15ea3766
mov dword [esp + 0xc], 0x62e26a8a
mov dword [esp + 0x2c], 1
mov dword [esp + 0x2c], 0x4961f084
mov dword [esp + 0x10], 0x15
cmp dword [esp + 0x10], 0x10
jle 0x10001e9c
push 6
pop edi
mov dword [esp + 0x30], 0x86bdae89
mov dword [esp + 0x38], 0x718b
mov dword [esp + 0x28], 7
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
sub eax, 0xaf849fb9
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
imul eax, dword [esp + 0xc], 0xc5bf
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], 4
jmp 0x10001e78
mov dword [esp + 0x2c], 0x1937da87
mov dword [esp + 0x24], edi
cmp dword [esp + 0x30], ebx
jne 0x10001da6
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0xc], ebx
je 0x10001de2
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x34]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0xa8]
setl dl
xor ecx, ecx
cmp edx, dword [eax]
setle cl
cmp ecx, dword [esp + 0x2c]
jl 0x10001de2
cmp dword [esp + 0xc], ebx
je 0x10001de2
xor ecx, ecx
inc ecx
jmp 0x10001de4
mov ecx, ebx
mov eax, dword [esp + 0xc]
imul eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x24], ebx
jne 0x10001e10
cmp dword [esp + 0x54], ebx
jne 0x10001e10
mov ecx, ebx
jmp 0x10001e13
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, esi
sete al
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
sub eax, 4
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], edi
jmp 0x10001e6d
mov dword [esp + 0x14], 0x1c
jmp 0x10001e62
mov byte [esp + 0x1a], bl
cmp byte [esp + 0x1a], 0
je 0x10001e5e
push 0x161b
push 0x1ea1
push 0x2037
call dword [sym.imp.USER32.dll_SetWindowLongA]
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0x1a
jge 0x10001e3e
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xfffffff0
jle 0x10001e34
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffe8
je 0x10001d90
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0x10
jg 0x10001d31
jmp 0x10001e9c
mov dword [esp + 0x30], edi
inc dword [esp + 0x30]
lea ecx, [esp + 0xf4]
call fcn.10001f55
lea ecx, [esp + 0xa8]
call fcn.10001f55
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x44]
mov dword [eax], ecx
mov ecx, dword [esp + 0x124]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret