Function at 0x1016e30
Capabilities:
Create thread

Disassembly:
mov eax, 0x101e86a
call fcn.0101ced0
sub esp, 0x34
push ebx
push esi
push edi
mov edi, ecx
call fcn.01014e04
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 1
mov ebx, 0x80000002
push ebx
mov ecx, edi
mov dword [0x102822c], eax
call fcn.01015c53
xor esi, esi
push esi
push 0x80000001
mov ecx, edi
call fcn.01015c53
cmp eax, esi
jge 0x1016c42
push esi
push ebx
mov ecx, edi
call fcn.01015c53
cmp eax, esi
jl 0x1016c42
push 0x80000001
mov ecx, edi
call fcn.01014e46
push 0x80
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push 2
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
push esi
push 2
call dword [sym.imp.KERNEL32.dll_SetProcessShutdownParameters]
push 0x1002fcc
push esi
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenEventW]
push 0x202
push 0x10285d0
mov ecx, edi
mov dword [0x1028248], eax
call fcn.0101b878
mov eax, 0x1028254
mov dword [eax - 4], esi
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], esi
add eax, 0x1c
cmp eax, 0x10285d4
jl 0x1016c9a
call fcn.01014e1c
mov eax, dword [0x102822c]
mov dword [0x1028250], eax
call ebx
mov dword [0x1028254], eax
mov dword [0x1028258], esi
mov dword [0x102825c], esi
mov dword [0x1028260], esi
mov dword [0x1028264], esi
mov dword [0x1028268], esi
call fcn.01014e33
push esi
push esi
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
push 1
push esi
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], esi
call fcn.01016b53
push esi
push esi
push esi
push 3
push 4
push esi
push esi
push 0xffffffffffffffff
push dword [ebp - 0x24]
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
push 1
push 4
push 0x1027b60
call dword [sym.imp.ATL.DLL_AtlModuleRegisterClassObjects]
push esi
push esi
push esi
push 0x101693f
push esi
push esi
call dword [sym.imp.msvcrt.dll__beginthreadex]
mov ebx, dword [sym.imp.USER32.dll_GetMessageW]
add esp, 0x18
mov dword [edi + 0x6e0], eax
jmp 0x1016d64
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push esi
push esi
lea eax, [ebp - 0x40]
push esi
push eax
call ebx
test eax, eax
jne 0x1016d5a
mov ebx, 0x1028264
mov dword [ebp - 0x10], 0x20
mov eax, dword [ebx - 4]
cmp eax, esi
je 0x1016d9f
cmp dword [ebx], esi
je 0x1016d9f
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0xffffffffffffffff
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push ebx
call fcn.0101e08e
add ebx, 0x1c
dec dword [ebp - 0x10]
jne 0x1016d7d
push 0x1028248
call fcn.0101e08e
lea ebx, [edi + 0x218]
mov dword [ebp - 0x10], 2
lea eax, [ebx - 0x58]
push eax
mov ecx, edi
call fcn.0101592c
push ebx
mov ecx, edi
call fcn.0101592c
lea eax, [ebx + 0x58]
push eax
mov ecx, edi
call fcn.0101592c
add ebx, 0x2c
dec dword [ebp - 0x10]
jne 0x1016dbe
call fcn.01014e1c
mov dword [0x1028250], esi
call fcn.01014e33
call fcn.01014e10
mov esi, 0x1027b60
push esi
call dword [sym.imp.ATL.DLL_AtlModuleRevokeClassObjects]
mov ecx, esi
call fcn.010158f6
mov ecx, esi
call fcn.0101b659
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0x24]
call fcn.010149a6
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret
jmp 0x1016be5