Function at 0x1001dbd0
Capabilities:
Check for time delay via gettickcount
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8ac
push ebx
push esi
push edi
push 0x44
lea eax, [esp + 0x3c]
push 0
push eax
call fcn.1007cff0
mov edi, dword [sym.imp.USER32.dll_FindWindowW]
add esp, 0xc
xor eax, eax
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
push 0x100ab624
push str.DOpus.ParentWindow
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
call edi
mov esi, eax
test esi, esi
jne 0x1001e4a8
mov eax, dword [ebp + 8]
and eax, 8
mov dword [esp + 0x18], eax
je 0x1001dc48
push str.dopus.licmanipc
push str.dopus.licmanipc
call edi
mov esi, eax
test esi, esi
jne 0x1001e4a8
lea eax, [esp + 0x6b0]
push 0x104
push eax
call sym.dopuslib32.dll_GetDOpusPathW
add esp, 8
test eax, eax
jne 0x1001dc7c
push eax
push 0x100ab624
push str.DOpusRT:_Directory_Opus_could_not_be_found
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x3a8]
mov edx, 0x104
lea esi, [esp + 0x6b0]
mov eax, ecx
sub esi, eax
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x1001dcba
movzx eax, word [esi + ecx]
test ax, ax
je 0x1001dcb3
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x1001dc93
jmp 0x1001dcb7
test edx, edx
jne 0x1001dcba
sub ecx, 2
xor eax, eax
mov word [ecx], ax
lea eax, [esp + 0x3a8]
push 0x5c
push eax
call fcn.1007ccce
mov esi, eax
lea eax, [esp + 0x3b0]
push 0x2f
push eax
call fcn.1007ccce
add esp, 0x10
test esi, esi
jne 0x1001dcf4
test eax, eax
jne 0x1001dcf8
mov word [esp + 0x3a8], ax
jmp 0x1001dcff
cmp esi, eax
ja 0x1001dcfa
mov esi, eax
xor eax, eax
mov word [esi], ax
lea ecx, [esp + 0xa0]
mov esi, 0x100ade38
mov eax, ecx
mov edx, 0x184
sub esi, eax
lea eax, [edx + 0x7ffffe7a]
test eax, eax
je 0x1001dd3b
movzx eax, word [esi + ecx]
test ax, ax
je 0x1001dd34
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x1001dd14
jmp 0x1001dd38
test edx, edx
jne 0x1001dd3b
sub ecx, 2
xor eax, eax
mov word [ecx], ax
mov ecx, 0x184
lea eax, [esp + 0xa0]
lea esp, [esp]
cmp word [eax], 0
je 0x1001dd5e
add eax, 2
sub ecx, 1
jne 0x1001dd50
mov esi, 0x184
mov edx, ecx
mov eax, esi
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x1001ddb8
mov ecx, esi
lea eax, [esp + 0xa0]
lea eax, [eax + edx*2]
sub ecx, edx
je 0x1001ddb0
lea ebx, [esp + 0x6b0]
mov edx, SysReAllocString
sub ebx, eax
test edx, edx
je 0x1001ddb3
movzx edi, word [ebx + eax]
test di, di
je 0x1001ddac
mov word [eax], di
dec edx
add eax, 2
sub ecx, 1
jne 0x1001dd91
jmp 0x1001ddb0
test ecx, ecx
jne 0x1001ddb3
sub eax, 2
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
lea eax, [esp + 0xa0]
cmp word [eax], 0
je 0x1001ddcf
add eax, 2
sub ecx, 1
jne 0x1001ddc1
mov eax, esi
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x1001de27
mov ecx, esi
lea eax, [esp + 0xa0]
lea eax, [eax + edx*2]
sub ecx, edx
je 0x1001de1f
mov ebx, 0x100b0f00
mov edx, SysReAllocString
sub ebx, eax
jmp 0x1001de00
test edx, edx
je 0x1001de22
movzx edi, word [ebx + eax]
test di, di
je 0x1001de1b
mov word [eax], di
dec edx
add eax, 2
sub ecx, 1
jne 0x1001de00
jmp 0x1001de1f
test ecx, ecx
jne 0x1001de22
sub eax, 2
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp + 8]
test al, 1
je 0x1001de35
mov ebx, str.crash
jmp 0x1001de43
mov ebx, str.autolister
test al, 4
jne 0x1001de43
mov ebx, str.nodef
mov ecx, esi
lea eax, [esp + 0xa0]
lea esp, [esp]
cmp word [eax], 0
je 0x1001de5e
add eax, 2
sub ecx, 1
jne 0x1001de50
mov eax, esi
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x1001deac
mov ecx, esi
lea eax, [esp + 0xa0]
lea eax, [eax + edx*2]
sub ecx, edx
je 0x1001dea4
mov edx, SysReAllocString
sub ebx, eax
test edx, edx
je 0x1001dea7
movzx edi, word [eax + ebx]
test di, di
je 0x1001dea0
mov word [eax], di
dec edx
add eax, 2
sub ecx, 1
jne 0x1001de85
jmp 0x1001dea4
test ecx, ecx
jne 0x1001dea7
sub eax, 2
xor ecx, ecx
mov word [eax], cx
test byte [ebp + 8], 2
je 0x1001df27
mov ecx, esi
lea eax, [esp + 0xa0]
jmp 0x1001dec0
cmp word [eax], 0
je 0x1001dece
add eax, 2
sub ecx, 1
jne 0x1001dec0
mov eax, esi
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x1001df27
mov ecx, esi
lea eax, [esp + 0xa0]
lea eax, [eax + edx*2]
sub ecx, edx
je 0x1001df1f
mov ebx, str._dblclk
mov edx, SysReAllocString
sub ebx, eax
lea ebx, [ebx]
test edx, edx
je 0x1001df22
movzx edi, word [eax + ebx]
test di, di
je 0x1001df1b
mov word [eax], di
dec edx
add eax, 2
sub ecx, 1
jne 0x1001df00
jmp 0x1001df1f
test ecx, ecx
jne 0x1001df22
sub eax, 2
xor ecx, ecx
mov word [eax], cx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push str.dopusrt_startup__08lx
lea eax, [esp + 0x5b8]
push 0x80
push eax
call fcn.1000b000
add esp, 0x10
lea eax, [esp + 0x5b0]
push eax
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esp + 0x14], eax
test eax, eax
je 0x1001e047
mov edx, esi
lea ecx, [esp + 0xa0]
cmp word [ecx], 0
je 0x1001df7f
add ecx, 2
sub edx, 1
jne 0x1001df71
mov eax, esi
mov edi, edx
sub eax, edx
neg edi
sbb edi, edi
and edi, eax
test edx, edx
je 0x1001dfd7
mov ecx, esi
lea eax, [esp + 0xa0]
lea eax, [eax + edi*2]
sub ecx, edi
je 0x1001dfcf
mov ebx, str._event
mov edx, SysReAllocString
sub ebx, eax
jmp 0x1001dfb0
test edx, edx
je 0x1001dfd2
movzx edi, word [eax + ebx]
test di, di
je 0x1001dfcb
mov word [eax], di
dec edx
add eax, 2
sub ecx, 1
jne 0x1001dfb0
jmp 0x1001dfcf
test ecx, ecx
jne 0x1001dfd2
sub eax, 2
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
lea eax, [esp + 0xa0]
cmp word [eax], 0
je 0x1001dfee
add eax, 2
sub ecx, 1
jne 0x1001dfe0
mov eax, esi
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x1001e047
mov ecx, esi
lea eax, [esp + 0xa0]
lea eax, [eax + edx*2]
sub ecx, edx
je 0x1001e03f
lea ebx, [esp + 0x5b0]
mov edx, SysReAllocString
sub ebx, eax
lea esp, [esp]
test edx, edx
je 0x1001e042
movzx edi, word [ebx + eax]
test di, di
je 0x1001e03b
mov word [eax], di
dec edx
add eax, 2
sub ecx, 1
jne 0x1001e020
jmp 0x1001e03f
test ecx, ecx
jne 0x1001e042
sub eax, 2
xor ecx, ecx
mov word [eax], cx
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x1001e12d
mov ecx, esi
lea eax, [esp + 0xa0]
jmp 0x1001e060
cmp word [eax], 0
je 0x1001e06e
add eax, 2
sub ecx, 1
jne 0x1001e060
mov eax, esi
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x1001e0ca
mov ecx, esi
lea eax, [esp + 0xa0]
lea eax, [eax + edx*2]
sub ecx, edx
je 0x1001e0bf
mov ebx, 0x100b0f84
mov edx, SysReAllocString
sub ebx, eax
lea ebx, [ebx]
test edx, edx
je 0x1001e0c2
movzx edi, word [ebx + eax]
test di, di
je 0x1001e0bb
mov word [eax], di
dec edx
add eax, 2
sub ecx, 1
jne 0x1001e0a0
jmp 0x1001e0bf
test ecx, ecx
jne 0x1001e0c2
sub eax, 2
mov ebx, dword [ebp + 0xc]
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
lea eax, [esp + 0xa0]
cmp word [eax], 0
je 0x1001e0e1
add eax, 2
sub ecx, 1
jne 0x1001e0d3
mov eax, esi
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x1001e12d
lea eax, [esp + 0xa0]
lea eax, [eax + edx*2]
sub esi, edx
je 0x1001e125
mov ecx, SysReAllocString
sub ebx, eax
test ecx, ecx
je 0x1001e128
movzx edx, word [ebx + eax]
test dx, dx
je 0x1001e121
mov word [eax], dx
dec ecx
add eax, 2
sub esi, 1
jne 0x1001e106
jmp 0x1001e125
test esi, esi
jne 0x1001e128
sub eax, 2
xor ecx, ecx
mov word [eax], cx
lea eax, [esp + 0xc]
mov dword [esp + 0xc], 0
push eax
push 8
mov ebx, 0x80004005
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x1001e1af
lea eax, [esp + 0x1c]
mov dword [esp + 0x10], 0
push eax
push 4
lea eax, [esp + 0x18]
mov dword [esp + 0x24], 0
push eax
push 0x14
push dword [esp + 0x1c]
call dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
je 0x1001e18d
xor ebx, ebx
cmp dword [esp + 0x10], ebx
sete bl
push dword [esp + 0xc]
call esi
test ebx, ebx
jne 0x1001e1af
lea eax, [esp + 0xa0]
push eax
call sym.dopuslib32.dll_Ordinal_119
add esp, 4
test eax, eax
jne 0x1001e294
lea eax, [esp + 0x28]
mov dword [esp + 0x3c], 0
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x44], 0
push eax
movzx eax, word [esp + 0x3b0]
lea ecx, [esp + 0x3b0]
neg eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
sbb eax, eax
mov dword [esp + 0x54], 0
and eax, ecx
mov dword [esp + 0x58], 0
push eax
push 0
push 0x20
push 0
push 0
push 0
lea eax, [esp + 0xc0]
mov dword [esp + 0x74], 0
push eax
push 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x60], 0x44
mov dword [esp + 0x8c], 0x40
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x1001e45b
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
mov esi, dword [sym.imp.USER32.dll_FindWindowW]
push 0x100ab624
push str.DOpus.ParentWindow
call esi
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x1001e445
cmp dword [esp + 0x18], eax
je 0x1001e2da
push str.dopus.licmanipc
push str.dopus.licmanipc
call esi
mov ebx, eax
mov dword [esp + 0x10], eax
test ebx, ebx
jne 0x1001e3fb
cmp dword [esp + 0x28], 0
jne 0x1001e2f1
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1001e3ec
xor bl, bl
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x4ff
push 0x1f4
mov dword [esp + 0x24], eax
lea eax, [esp + 0x30]
push esi
push eax
push 1
mov dword [esp + 0x34], 0x1f4
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
mov dword [esp + 0xc], eax
cmp eax, 1
jne 0x1001e3e2
lea esp, [esp]
push 1
push 0
push 0
push 0
lea eax, [esp + 0x94]
push eax
call edi
test eax, eax
je 0x1001e38d
cmp dword [esp + 0x88], 0x12
jne 0x1001e35b
mov esi, dword [esp + 0x8c]
mov bl, 1
jmp 0x1001e377
lea eax, [esp + 0x84]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x84]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 1
push 0
push 0
push 0
lea eax, [esp + 0x94]
push eax
call edi
test eax, eax
jne 0x1001e346
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esp + 0x20]
mov ecx, eax
sub ecx, dword [esp + 0x1c]
cmp ecx, edx
jae 0x1001e3cf
push 0x4ff
sub edx, ecx
mov dword [esp + 0x20], eax
push edx
push 0
lea eax, [esp + 0x34]
mov dword [esp + 0x2c], edx
push eax
push 1
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
mov dword [esp + 0xc], eax
cmp eax, 1
je 0x1001e330
jmp 0x1001e3d3
mov eax, dword [esp + 0xc]
test bl, bl
je 0x1001e3e2
push esi
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x1001e3f7
mov esi, dword [sym.imp.USER32.dll_FindWindowW]
sub dword [esp + 0x24], 1
jns 0x1001e2a0
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x1001e410
push eax
call esi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x1001e41b
push eax
call esi
test edi, edi
je 0x1001e422
push edi
call esi
test ebx, ebx
je 0x1001e43c
lea eax, [esp + 0x18]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_AllowSetForegroundWindow]
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x14]
test edi, edi
je 0x1001e3ff
push 0x2710
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x1001e3ff
lea eax, [esp + 0x6b0]
push eax
push 0x100b0f88
lea eax, [esp + 0xa8]
push 0x184
push eax
call fcn.1000b000
add esp, 0x10
lea eax, [esp + 0xa0]
push 0
push 0x100ab624
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1001e49f
push eax
call esi
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x18]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_AllowSetForegroundWindow]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret