Function at 0x10021830
Capabilities:
Get session user name

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
mov dword [ebp - 0x64], edx
mov eax, 0x6f9b6917
mov dword [ebp - 0x14], 0x928c176b
xor edx, edx
mov dword [ebp - 0x18], 0x7d50f82b
mov dword [ebp - 0xf0], eax
push ebx
mov dword [ebp - 0xec], eax
mov ebx, ecx
mov dword [ebp - 0xe8], eax
push esi
mov dword [ebp - 0xe4], eax
push edi
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x14], edx
jmp 0x10021910
mov dword [ebp - 0xc], 0xfffffffa
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x28], 1
cmp dword [ebp - 0xc], edx
je 0x1002189a
cmp dword [ebp - 0xc], 1
jge 0x1002189a
xor eax, eax
inc eax
jmp 0x1002189c
mov eax, edx
cmp eax, 4
mov eax, dword [ebp - 0x20]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setg dl
xor ecx, ecx
sub edx, dword [ebp - 0x18]
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp edx, eax
setle cl
mov dword [ebp - 0xec], ecx
test ecx, ecx
je 0x100218fc
mov dword [ebp - 0x20], 0xd76270e7
mov eax, dword [ebp - 0x28]
sub eax, 0x3d3b
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x20], eax
mov byte [ebp - 5], dl
cmp byte [ebp - 5], dl
je 0x1002190d
push 0x246f
push 0x9ae
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
xor edx, edx
jmp 0x1002190d
xor edx, edx
mov dword [ebp - 0x1c], 1
cmp dword [ebp - 0xc], edx
jne 0x1002191a
inc dword [ebp - 0x1c]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x15
jge 0x10021879
or edi, 0xffffffff
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], 0xf18ee85e
mov dword [ebp - 0x10], 0x51acae7b
mov dword [ebp - 0x1c], 0xb903
push 3
mov dword [ebp - 0xc], 1
mov dword [ebp - 4], edx
pop ecx
jmp 0x10021952
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x5c], 0xf0ed
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x10021944
push 2
mov dword [ebp - 4], edx
pop esi
jmp 0x1002196c
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xa4], edi
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x1002195f
mov dword [ebp - 4], edx
jmp 0x10021983
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x138], edi
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x10021976
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x54]
jge 0x10021a3f
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x14]
jne 0x100219a7
cmp dword [ebp - 0x5c], edx
je 0x100219aa
xor edx, edx
inc edx
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
cmp edx, eax
setl cl
imul eax, ecx, 0x5bed
test eax, eax
jne 0x100219c3
cmp dword [ebp - 0x5c], eax
je 0x100219c6
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x1c]
sub edx, eax
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0x14]
cmp edx, eax
mov eax, dword [ebp - 0x5c]
setle cl
cmp ecx, 0xe402095d
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
sub edx, 0x78c0
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setge cl
sub ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x5c]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x58]
setle dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x134], ecx
cmp ecx, dword [ebp - 0x14]
jl 0x10021a3d
xor eax, eax
inc eax
xor edx, edx
jmp 0x10021a41
xor edx, edx
mov eax, edx
mov dword [ebp - 0xc], eax
xor ecx, ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x5c]
cmp eax, 0x6f4e
setg cl
lea eax, [ecx + 0x50e1]
cmp eax, dword [ebp - 0x5c]
mov byte [ebp - 5], dl
jle 0x10021aa8
cmp byte [ebp - 5], 0
je 0x10021a75
push edx
push edx
push edx
push edx
push edx
call dword [sym.imp.KERNEL32.dll_GetProcessTimes]
xor edx, edx
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edx
jl 0x10021aba
mov dword [ebp - 0xc], esi
cmp dword [ebp - 0xc], edx
jl 0x10021aa1
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + eax*4 - 0xa4]
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xa4], ecx
dec dword [ebp - 0xc]
jns 0x10021a88
dec dword [ebp - 0x10]
jns 0x10021a80
jmp 0x10021ab7
cmp byte [ebp - 5], 0
je 0x10021ab7
push edx
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
xor edx, edx
xor eax, eax
inc eax
mov dword [ebp - 0x24], 5
push 0xfffffffffffffffd
pop ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x24], 8
mov dword [ebp - 0x38], 0x801fc3ee
mov dword [ebp - 0x24], 0xbef7d651
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x1c], 0xf39c
mov dword [ebp - 0xc], 0xda8d
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x3c], 5
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 0xa93f0451
mov dword [ebp - 0x28], 0xb9d37639
mov dword [ebp - 4], edx
jmp 0x10021b3b
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xd0], edi
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10021b2e
mov dword [ebp - 4], edx
jmp 0x10021b56
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x15c], 5
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x10021b45
push 3
mov dword [ebp - 4], edx
pop ecx
jmp 0x10021b75
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xfc], 0xfffffffe
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x10021b64
dec dword [ebp - 0x18]
dec dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x158], ecx
mov eax, dword [ebp - 0x1c]
dec dword [ebp - 0xc]
cmp eax, ecx
jle 0x10021b98
xor edi, edi
inc edi
jmp 0x10021b9a
mov edi, edx
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x28], edx
je 0x10021ba8
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0xd0]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp eax, 0xc114
mov eax, dword [ebp - 0xf4]
setl dl
xor ecx, ecx
cmp edx, eax
push 4
setne cl
mov dword [ebp - 0x18], ecx
xor ecx, ecx
mov esi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x14]
imul esi, eax
mov eax, dword [ebp - 0x18]
cmp eax, 0x61e33ecd
setle cl
xor edx, edx
sub esi, ecx
sub esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3c]
cmp edi, esi
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, 0x4c46983c
pop edx
setle cl
mov dword [ebp - 0xf4], ecx
xor ecx, ecx
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 4], ecx
jmp 0x10021c38
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xc8], 0xa8eac8b
inc dword [ebp - 4]
cmp dword [ebp - 4], edx
jl 0x10021c27
mov dword [ebp - 4], ecx
jmp 0x10021c4f
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x8c], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], edx
jl 0x10021c42
mov dword [ebp - 4], ecx
jmp 0x10021c6a
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x12c], 0x8e85a7b0
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x10021c59
mov esi, dword [sym.imp.USER32.dll_GetDC]
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 3
pop edx
mov dword [ebp - 0x80], edx
cmp dword [ebp - 0x80], ecx
jl 0x10021ded
or ebx, 0xffffffff
mov dword [ebp - 0x14], 0xfffffff6
mov dword [ebp - 0x18], 0x9fe57f6c
mov dword [ebp - 0x10], 6
mov dword [ebp - 0xc], ecx
jmp 0x10021cb9
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x108], 0xfffffff8
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x10021ca8
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], ecx
jl 0x10021dd7
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], 0x56e74e80
mov dword [ebp - 0x24], 0xfffffffc
mov dword [ebp - 0x1c], 0x7ef2
mov dword [ebp - 0xc], ecx
jmp 0x10021cf8
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x100], ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 1
jl 0x10021ceb
mov byte [ebp - 5], cl
cmp byte [ebp - 5], 0
je 0x10021d25
push 0x2421
push ecx
push ecx
push 0x18e1
push 0x20a3
push ecx
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_GetDIBits]
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp + eax*4 - 0xc8]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x104], ecx
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
cmp eax, ecx
jge 0x10021d82
mov eax, dword [ebp - 0x80]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0xc8]
mov eax, dword [ebp - 0x10]
add edx, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0xc8]
cmp eax, edx
mov eax, 0x694a2199
setne cl
cmp ecx, 0xfffa
sbb ecx, ecx
neg ecx
sub eax, ecx
mov dword [ebp - 0xdc], eax
je 0x10021d82
xor ecx, ecx
jmp 0x10021d85
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x10]
push 0
sete dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setg cl
xor edx, edx
cmp ecx, 0x56bf5ee8
mov eax, dword [ebp + eax*4 - 0xc8]
setg dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0x80]
setl cl
mov dword [ebp + eax*4 - 0xc8], ecx
lea eax, [ecx - 0x34219488]
mov dword [ebp - 0x10], eax
dec dword [ebp - 0x14]
pop ecx
jns 0x10021ccb
push 3
pop edx
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp + eax*4 - 0xc8]
dec dword [ebp - 0x80]
jns 0x10021c8e
mov ebx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0xc], ecx
jmp 0x10021e0c
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x14c], 0xa684
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x10021dfb
mov byte [ebp - 5], cl
cmp byte [ebp - 5], 0
je 0x10021e24
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor ecx, ecx
mov byte [ebp - 5], cl
cmp byte [ebp - 5], 0
je 0x10021e46
push ecx
push 0x666
push 0xc90
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_MoveToEx]
xor ecx, ecx
cmp dword [ebx + 0x10], ecx
jne 0x10021e52
xor al, al
jmp 0x100227ca
mov dword [ebp - 4], ecx
or edx, 0xffffffff
mov dword [ebp - 0x24], 0x590
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 2
jge 0x10021e74
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x6c], edx
inc dword [ebp - 0xc]
jmp 0x10021e62
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 4]
jge 0x10021f4d
mov dword [ebp - 0xc], 0x37c0
xor ecx, ecx
mov dword [ebp - 0x14], 0xabff5ecc
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x20], 0xd69b45c
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
cmp eax, edx
push 5
setle cl
imul ecx, dword [ebp - 0xc]
pop eax
imul ecx, dword [ebp - 0xc]
cmp eax, ecx
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xfffffffc
mov eax, dword [ebp - 4]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 4]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 4]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 4]
setl dl
xor ecx, ecx
neg edx
cmp edx, eax
setne cl
sub ecx, dword [ebp - 4]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
add ecx, 0x12a2ef7e
cmp ecx, eax
setne dl
add edx, dword [ebp - 4]
sub edx, dword [ebp - 0xc]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x68], edx
xor edx, edx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
cmp ecx, eax
setl dl
xor ecx, ecx
cmp edx, dword [ebp - 4]
jle 0x10021f39
cmp dword [ebp - 0x6c], ecx
jne 0x10021f42
cmp dword [ebp - 0x14], ecx
jne 0x10021f42
mov eax, ecx
jmp 0x10021f45
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
jmp 0x100220fb
mov dword [ebp - 0x28], 0x3d82f881
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0xfffffffd
jle 0x100220f4
push 3
pop ebx
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x18], 0xfffffffa
mov dword [ebp - 0x3c], 0xe8e356d6
mov dword [ebp - 0xc], 0xffffffe6
jmp 0x100220da
mov dword [ebp - 0x10], 0x5866b388
mov dword [ebp - 0x38], 0xfffffffc
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], ecx
jl 0x100220d7
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x20], 0xc51c
mov dword [ebp - 0x24], 0xfffffffb
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 1
jg 0x100220ce
mov dword [ebp - 0x1c], 6
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], 7
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x6c]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], 0x5a1b
cmp dword [ebp - 0x18], ecx
je 0x100220a9
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x18]
inc edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x10]
setg cl
xor edx, edx
imul ecx, ecx, 0x1fd1
cmp eax, ecx
mov eax, dword [ebp - 0x10]
setle dl
xor ecx, ecx
cmp edx, eax
setl cl
imul eax, ecx, 0xfff6
test eax, eax
jne 0x10022035
cmp dword [ebp - 0x10], eax
jne 0x10022035
xor ecx, ecx
jmp 0x10022038
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x316a
setge al
xor edx, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x1c]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
cmp ebx, ecx
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x14]
jl 0x1002206a
cmp dword [ebp - 0xc], 0
je 0x1002206a
xor edx, edx
inc edx
jmp 0x1002206c
xor edx, edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
setg cl
sub ecx, dword [ebp - 0x10]
jne 0x10022084
cmp dword [ebp - 0x14], ecx
jne 0x10022084
xor eax, eax
jmp 0x10022087
xor eax, eax
inc eax
xor edx, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x68]
sete dl
xor ecx, ecx
cmp eax, edx
setl cl
imul eax, ecx, 0x8194
xor ecx, ecx
cmp eax, 0xb022
jge 0x100220a9
inc ecx
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x6c], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x3c]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jle 0x10021fc1
or edx, 0xffffffff
dec dword [ebp - 0x10]
jns 0x10021fa3
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xfffffff7
je 0x10021f85
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xfffffffd
jg 0x10021f64
mov ebx, dword [ebp - 0x40]
mov dword [ebp - 0x68], 0xfffffffb
mov dword [ebp - 4], 0x2b1c
mov dword [ebp - 0x10], 0x9d81479b
mov dword [ebp - 0x14], 0xfffffff7
mov dword [ebp - 0xc], ecx
jmp 0x10022123
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x34], 0x145c1747
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 1
jl 0x10022115
push ecx
lea eax, [ebp - 0x2e]
mov byte [ebp - 0x2e], cl
push eax
push 0x267e
call fcn.1002280f
mov eax, dword [ebp - 4]
add esp, 0xc
sub eax, 0x89a5
neg eax
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
neg eax
sbb eax, eax
neg eax
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
sub edx, 0x8f69f7fd
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
xor edx, edx
cmp dword [ebp - 4], ecx
jne 0x1002219a
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
jmp 0x100221f9
mov dword [ebp - 4], edx
jmp 0x100221f4
mov dword [ebp - 0xc], edx
jmp 0x100221b5
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xb8], 8
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 1
jl 0x100221a4
mov dword [ebp - 0x10], edx
jmp 0x100221ec
mov dword [ebp - 0x14], edx
jmp 0x100221dd
mov ecx, dword [ebp + eax*4 - 0x34]
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x34], ecx
mov dword [ebp - 0xb8], 1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
jle 0x100221c5
mov eax, dword [ebp + eax*4 - 0x34]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jle 0x100221c0
inc dword [ebp - 4]
cmp dword [ebp - 4], edx
jle 0x1002219f
mov dword [ebp - 0x10], edx
jmp 0x1002220c
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x7c], 0x937d8e6e
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100221fe
mov dword [ebp - 0x10], edx
jmp 0x10022225
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x4c], 0xbec0351
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x10022217
imul eax, dword [ebp - 0x74], 0xffff
or ecx, 0xffffffff
cmp eax, ecx
jae 0x10022248
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp - 0x74]
xor eax, eax
inc eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x78], edx
je 0x10022258
cmp dword [ebp - 0x48], edx
jne 0x1002225a
mov eax, edx
cmp dword [ebp - 0x74], eax
jne 0x10022262
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], edx
je 0x10022288
mov byte [ebp - 5], dl
cmp byte [ebp - 5], 0
je 0x100223aa
push edx
push edx
push 0x9e7
call dword [sym.imp.ADVAPI32.dll_CopySid]
xor edx, edx
jmp 0x100223aa
mov dword [ebp - 4], ecx
xor ecx, ecx
mov dword [ebp - 0x10], 0xfff6
mov dword [ebp - 0x20], 0xfffffff8
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x78]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
cmp eax, 0x8594
push 3
setge cl
xor edx, edx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x10]
imul ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x4c]
cmp eax, ecx
mov eax, dword [ebp - 0x10]
setge dl
xor ecx, ecx
cmp edx, eax
pop eax
setge cl
xor edx, edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 4], eax
cmp dword [ebp - 4], edx
jl 0x100223aa
or ebx, 0xffffffff
mov dword [ebp - 0x18], 2
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 1
jge 0x1002231a
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x60], 0x1beba424
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 1
jl 0x10022303
push 3
pop eax
mov byte [ebp - 5], dl
cmp byte [ebp - 5], 0
je 0x10022335
push edx
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
push 3
xor edx, edx
pop eax
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], eax
jg 0x1002239e
push 3
pop edi
mov dword [ebp - 0x1c], 0x5c66b319
xor edx, edx
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x1c]
add ecx, eax
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
sete dl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x60]
cmp ebx, eax
mov eax, dword [ebp - 0x18]
sbb ecx, ecx
neg ecx
sub ecx, eax
xor eax, eax
cmp ecx, 0xf8c5
setne al
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x48], 0x1947684a
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jle 0x10022340
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
xor edx, edx
push 3
pop eax
dec dword [ebp - 4]
jns 0x100222f3
mov ebx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x64]
mov dword [eax], edx
mov dword [ebp - 0xc], edx
jmp 0x100223c5
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x10c], 0x624039b
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 1
jl 0x100223b4
mov byte [ebp - 5], dl
cmp byte [ebp - 5], 0
je 0x100223e1
push 1
push 0x36
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
xor edx, edx
mov byte [ebp - 5], dl
cmp byte [ebp - 5], 0
je 0x100223f2
push edx
push edx
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
cmp dword [ebx + 0x14], 0x10
jb 0x100223fc
mov ecx, dword [ebx]
jmp 0x100223fe
mov ecx, ebx
cmp dword [ebx + 0x14], 0x10
mov dword [ebp - 0x50], ecx
jb 0x1002240b
mov edx, dword [ebx]
jmp 0x1002240d
mov edx, ebx
mov eax, dword [ebx + 0x10]
add eax, edx
cmp ecx, eax
je 0x100227c8
xor ebx, ebx
mov dword [ebp - 0x20], 0x13638ecf
push 3
mov dword [ebp - 0xc], ebx
pop edx
jmp 0x1002243c
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x144], 0xfffffffa
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
jl 0x1002242b
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x20], eax
mov byte [ebp - 5], bl
cmp byte [ebp - 5], bl
je 0x1002245c
push ebx
call fcn.100228ae
pop ecx
push 3
pop edx
mov eax, dword [ebp - 0x50]
mov al, byte [eax]
cmp al, 0x30
jl 0x100225cd
cmp al, 0x39
jg 0x100225cd
mov dword [ebp - 0xc], 0xffff
or eax, 0xffffffff
mov dword [ebp - 4], 0x29c1464f
xor ecx, ecx
mov dword [ebp - 0x28], 0x2b483718
inc ecx
mov dword [ebp - 0x24], 0xacf25792
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x18], 0x88c5540f
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], 0xd4644688
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0xa8], 0x9bd9
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0xc], 0xfffd
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 4]
sub edx, eax
mov eax, dword [ebp - 0x1c]
cmp edx, eax
setne cl
imul ecx, dword [ebp - 0x38]
imul eax, ecx, 0x8998
mov ecx, 0xb46f9f12
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
neg eax
sbb eax, eax
xor edx, edx
neg eax
sub ecx, eax
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setle dl
sub edx, dword [ebp - 0x28]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x9c]
dec dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
inc edx
cmp eax, edx
setg cl
xor edx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x9c]
setl dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setl bl
xor ecx, ecx
cmp ebx, eax
lea eax, [ebp - 0x64]
push eax
push 0
lea eax, [ebp - 0x50]
setle cl
add ecx, dword [ebp - 0x98]
push eax
push 0x5bbe
mov dword [ebp - 0x98], ecx
call fcn.10025218
mov ecx, dword [ebp - 0x50]
add esp, 0x10
mov ebx, dword [ebp - 0x40]
inc ecx
jmp 0x100223fe
push 5
pop eax
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], ebx
inc ecx
jmp 0x100225e9
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x2c], 8
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x100225db
mov dword [ebp - 4], ebx
jmp 0x10022601
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x44], 0x82169286
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x100225f3
mov dword [ebp - 4], ebx
jmp 0x1002261c
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x124], 0xfffffffe
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x1002260b
mov dword [ebp - 0x10], ebx
jmp 0x10022688
mov dword [ebp - 0xc], ebx
jmp 0x1002263d
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xb4], 0x951fe77d
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
jl 0x1002262c
mov dword [ebp - 0xb0], ebx
cmp dword [ebp - 0xb0], ebx
jg 0x10022685
mov byte [ebp - 5], bl
cmp byte [ebp - 5], bl
je 0x10022665
push 0x3d74
push ebx
call fcn.1002299c
pop ecx
pop ecx
mov byte [ebp - 5], bl
cmp byte [ebp - 5], bl
je 0x10022674
push ebx
call fcn.10025509
pop ecx
inc dword [ebp - 0xb0]
cmp dword [ebp - 0xb0], ebx
jle 0x10022650
push 3
pop edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jle 0x10022627
mov dword [ebp - 0x10], 0xffffffef
cmp dword [ebp - 0x10], 0x12
jne 0x1002278c
push 9
pop esi
mov dword [ebp - 4], 0xfffffff6
mov dword [ebp - 0x20], esi
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], ebx
jl 0x1002277f
mov dword [ebp - 0x24], esi
mov eax, dword [ebp - 4]
cmp dword [ebp + eax*4 - 0x2c], ebx
jne 0x1002277f
cmp dword [ebp - 4], ebx
jne 0x10022758
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
cmp eax, 0x339b8842
mov eax, dword [ebp - 0x2c]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 4]
setne dl
imul eax, edx
cmp eax, dword [ebp - 0x44]
jg 0x100226fe
mov eax, dword [ebp - 0x124]
mov eax, dword [ebp - 4]
xor ecx, ecx
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x2c]
test eax, eax
setg cl
xor edx, edx
imul ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x2c]
cmp ecx, 0xfffffffc
setne dl
sub edx, eax
sub edx, 0xe879
je 0x10022740
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x24], eax
dec dword [ebp - 4]
jns 0x100226b7
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x12
je 0x100226a1
lea eax, [ebp - 0x64]
push eax
push ebx
call fcn.10022956
mov dword [ebp - 0x24], 0xfff8
mov byte [ebp - 5], bl
pop ecx
pop ecx
cmp byte [ebp - 5], bl
je 0x100227b4
push 0x5632
push ebx
call fcn.10022860
pop ecx
pop ecx
lea eax, [ebp - 0x2d]
mov byte [ebp - 0x2d], bl
push eax
push ebx
call fcn.100228e1
pop ecx
pop ecx
jmp 0x10021e4b
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret