Function at 0x100161a1
Capabilities:
Enumerate gui resources
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
push ebx
push esi
xor ebx, ebx
push edi
test cl, cl
je 0x100162f0
push 3
pop ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], 0xf81320f2
mov dword [ebp - 0x10], 8
mov dword [ebp - 8], ebx
jmp 0x100161db
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x6c], 0xf5cd
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x100161cd
xor esi, esi
mov dword [ebp - 8], ebx
inc esi
jmp 0x100161f7
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x18], 0xd76ce4a6
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x100161e9
push 2
mov dword [ebp - 8], ebx
pop edi
jmp 0x10016212
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x34], 0x3e5ec352
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x10016204
mov dword [ebp - 8], ebx
jmp 0x1001622a
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x50], 0x85fafe44
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x1001621c
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0xc], 0xa017779a
sbb eax, eax
xor edx, edx
neg eax
sub eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0xc]
cmp ecx, eax
mov eax, dword [ebp - 0xc]
setge dl
imul eax, edx
cmp eax, 0xffff
sbb edx, edx
xor ecx, ecx
inc edx
add edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x64]
cmp eax, edx
setle cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x10], esi
jmp 0x100162de
mov dword [ebp - 0xc], ebx
jmp 0x1001629d
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x3c], esi
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x10016293
mov dword [ebp - 0xc], ebx
jmp 0x100162d5
mov eax, dword [ebp - 0x34]
mov ecx, 0xf45b6d4f
imul eax, dword [ebp - 0x3c], 0x6848
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], ebx
jmp 0x100162cd
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x3c], esi
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x100162c3
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
je 0x100162a7
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x17
jl 0x1001628e
push ebx
call dword [sym.imp.USER32.dll_SetKeyboardState]
jmp 0x10016589
mov dword [ebp - 0xc], 0xffff
dec dword [ebp - 0xc]
mov dword [ebp - 0xc], ebx
cmp dword [ebp - 0xc], 0x19
je 0x1001635b
push 2
pop edi
mov dword [ebp - 8], 0x1c0f8067
mov dword [ebp - 0x10], ebx
jmp 0x10016320
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x5c], 0x6ff55e00
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10016312
mov dword [ebp - 8], ebx
jmp 0x1001634d
mov dword [ebp - 0x10], ebx
jmp 0x1001633e
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x44], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x10016330
mov dword [ebp - 0x40], 0x17ad2
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jle 0x1001632b
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x19
jne 0x10016306
mov byte [ebp - 1], bl
push 1
pop esi
cmp byte [ebp - 1], bl
je 0x100163bb
mov dword [ebp - 0x14], 6
mov dword [ebp - 0x10], ebx
jmp 0x1001637c
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x2c], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10016372
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10016396
push 0x1f9e
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x100163b2
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x100163ad
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommBreak]
dec dword [ebp - 0x14]
jns 0x1001639e
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAdjustment]
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], 0x8abb75da
mov dword [ebp - 0x14], 0x3efe35fe
mov dword [ebp - 0x10], ebx
jmp 0x100163df
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x28], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x100163d1
mov eax, dword [ebp - 8]
mov ecx, 0xe5411aa8
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0xc], eax
jne 0x100163fa
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 8]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 8]
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 8]
jg 0x10016427
cmp dword [ebp - 0xc], ebx
je 0x10016429
mov ebx, esi
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 8]
setl cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 8]
setl dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 8]
setne bl
xor ecx, ecx
cmp ebx, eax
setl cl
xor ebx, ebx
cmp dword [ebp - 8], ecx
jne 0x1001645f
mov ecx, esi
cmp dword [ebp - 8], ebx
jne 0x10016461
mov ecx, ebx
xor eax, eax
cmp ecx, 0xb059
setge al
add eax, dword [ebp - 8]
imul eax, eax, 0xfffffffc
test eax, eax
jne 0x1001647d
mov ecx, ebx
cmp dword [ebp - 0xc], ebx
je 0x1001647f
mov ecx, esi
mov eax, dword [ebp - 8]
imul eax, ecx
test eax, eax
je 0x10016490
mov eax, esi
cmp dword [ebp - 0xc], ebx
jne 0x10016492
mov eax, ebx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 8]
jl 0x100164df
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x100164c3
push ebx
push 0x1c60
push 0x22f
push ebx
push 0x1d01
push 0x2418
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 8], ebx
jmp 0x100164d4
cmp dword [ebp - 8], ebx
jne 0x10016589
inc dword [ebp - 8]
cmp dword [ebp - 8], 9
jg 0x100164c8
jmp 0x10016589
mov dword [ebp - 0xc], 0xfffffffa
mov dword [ebp - 0x24], 0x691445a1
mov dword [ebp - 0x1c], 0xaa2df500
mov dword [ebp - 0x10], 7
mov dword [ebp - 0x10], ebx
jmp 0x1001650e
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x20], 0xfffffffd
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10016500
mov byte [ebp - 1], bl
cmp byte [ebp - 1], 0
je 0x10016524
push ebx
push ebx
call dword [sym.imp.USER32.dll_EnumWindows]
mov eax, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add eax, 3
add ecx, eax
mov eax, dword [ebp - 0xc]
cmp ecx, eax
mov eax, dword [ebp - 8]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 8]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0xdf38
setl al
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret