Function at 0x10016a90
Capabilities:
Create thread

Disassembly:
sub esp, 0x20c
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push ebp
push esi
push edi
lea eax, [esp + 0x118]
xor ebp, ebp
push 0x104
push eax
mov dword [esp + 0x18], ecx
push ebp
mov dword [0x1002e8b8], ebp
mov dword [0x1002e8bc], ebp
call ebx
lea ecx, [esp + 0x118]
push 0x5c
push ecx
call fcn.100194f0
lea esi, [eax + 1]
push 0x10003408
push esi
call fcn.10019410
test eax, eax
je 0x10016bd9
mov edi, 0x10003400
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x1002e694
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 8
mov edi, 0x1002e020
rep stosd dword es:[edi], eax
mov ecx, 8
mov edi, 0x1002e0a0
rep stosd dword es:[edi], eax
cmp dword [0x1002e8c0], ebp
je 0x10016b84
lea eax, [esp + 0x14]
push 0x104
push eax
push ebp
call ebx
lea ecx, [esp + 0x14]
push 0x5c
push ecx
call fcn.100194f0
lea edx, [eax + 1]
mov edi, 0x10002580
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x80
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 2
and ecx, 3
push ebp
rep movsb byte es:[edi], byte [esi]
push ebp
lea ecx, [esp + 0x28]
push SysReAllocStringLen
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
call esi
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
mov dword [0x1002e89c], eax
call esi
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
call esi
mov edx, dword [0x1002e89c]
push 2
push edx
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, dword [0x1002e89c]
push eax
jmp 0x10016e42
push 0x100033ec
push esi
call fcn.10019410
test eax, eax
je 0x10016cde
mov edi, 0x100033e4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x1002e694
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 8
mov edi, 0x1002e020
rep stosd dword es:[edi], eax
mov ecx, 8
mov edi, 0x1002e0a0
rep stosd dword es:[edi], eax
cmp dword [0x1002e8c0], ebp
je 0x10016c89
lea eax, [esp + 0x14]
push 0x104
push eax
push ebp
call ebx
lea ecx, [esp + 0x14]
push 0x5c
push ecx
call fcn.100194f0
lea edx, [eax + 1]
mov edi, 0x10002580
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x80
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 2
and ecx, 3
push ebp
rep movsb byte es:[edi], byte [esi]
push ebp
lea ecx, [esp + 0x28]
push SysReAllocStringLen
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
call esi
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
mov dword [0x1002e89c], eax
call esi
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
call esi
mov edx, dword [0x1002e89c]
push 2
push edx
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, dword [0x1002e89c]
push eax
jmp 0x10016e42
push 0x100033d0
push esi
call fcn.10019410
test eax, eax
je 0x10016d3b
mov edi, 0x100033cc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x1002e694
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 8
mov edi, 0x1002e020
rep stosd dword es:[edi], eax
mov ecx, 8
mov edi, 0x1002e0a0
rep stosd dword es:[edi], eax
cmp dword [0x1002e8c0], ebp
je 0x10016df2
jmp 0x10016de9
push 0x100033bc
push esi
call fcn.10019410
test eax, eax
je 0x10016d91
mov edi, 0x100033b8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x1002e694
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 8
mov edi, 0x1002e020
rep stosd dword es:[edi], eax
mov ecx, 8
mov edi, 0x1002e0a0
rep stosd dword es:[edi], eax
cmp dword [0x1002e8c0], ebp
je 0x10016df2
jmp 0x10016de9
push 0x100033a8
push esi
call fcn.10019410
test eax, eax
je 0x10016e5e
mov edi, 0x100033a0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x1002e694
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 8
mov edi, 0x1002e020
rep stosd dword es:[edi], eax
mov ecx, 8
mov edi, 0x1002e0a0
rep stosd dword es:[edi], eax
cmp dword [0x1002e8c0], ebp
je 0x10016df2
mov ecx, dword [esp + 0x10]
call fcn.1000f6d0
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
call esi
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
mov dword [0x1002e89c], eax
call esi
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
call esi
mov eax, dword [0x1002e89c]
push 2
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov ecx, dword [0x1002e89c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov dword [0x1002e89c], ebp
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x20c
ret
push 0x10003394
push esi
call fcn.10019410
test eax, eax
je 0x10016f33
mov edi, 0x1000338c
or ecx, 0xffffffff
xor eax, eax
mov ebx, 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [0x1002e8dc], ebx
mov edx, ecx
mov esi, edi
mov edi, 0x1002e694
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 8
mov edi, 0x1002e020
rep stosd dword es:[edi], eax
mov ecx, 8
mov edi, 0x1002e0a0
rep stosd dword es:[edi], eax
cmp dword [0x1002e8c0], ebp
je 0x10016eca
mov ecx, dword [esp + 0x10]
call fcn.1000f6d0
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
call esi
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
mov dword [0x1002e89c], eax
call esi
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
call esi
mov eax, dword [0x1002e89c]
push 2
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov ecx, dword [0x1002e89c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov dword [0x1002e89c], ebp
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x20c
ret
push 0x10003380
push esi
call fcn.10019410
test eax, eax
je 0x10017007
mov edi, 0x10003378
or ecx, 0xffffffff
xor eax, eax
mov dword [0x1002e8dc], 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x1002e694
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 8
mov edi, 0x1002e020
rep stosd dword es:[edi], eax
mov ecx, 8
mov edi, 0x1002e0a0
rep stosd dword es:[edi], eax
cmp dword [0x1002e8c0], ebp
je 0x10016f9e
mov ecx, dword [esp + 0x10]
call fcn.1000f6d0
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
call esi
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
mov dword [0x1002e89c], eax
call esi
push ebp
push ebp
push ebp
push 0x10016960
push 0x400
push ebp
call esi
mov eax, dword [0x1002e89c]
push 2
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov ecx, dword [0x1002e89c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov dword [0x1002e89c], ebp
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20c
ret
push 0x1000184c
push esi
call fcn.10019410
test eax, eax
je 0x1001704c
mov edi, 0x10003374
or ecx, 0xffffffff
xor eax, eax
mov ebx, 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [0x1002e8b8], ebx
mov edx, ecx
mov esi, edi
mov edi, 0x1002e694
mov dword [0x1002e8dc], ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x1001717f
push 0x10003360
push esi
call fcn.10019410
test eax, eax
je 0x10017076
mov ebx, 1
mov edi, 0x1000335c
mov dword [0x1002e8b8], ebx
mov dword [0x1002e8dc], ebx
jmp 0x10017164
push 0x10001ca4
push esi
call fcn.10019410
test eax, eax
je 0x100170c1
mov edi, 0x10003358
or ecx, 0xffffffff
xor eax, eax
mov ebx, 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [0x1002e8b8], ebx
mov edx, ecx
mov esi, edi
mov edi, 0x1002e694
mov dword [0x1002e8bc], ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov dword [0x1002e8dc], ebx
mov ecx, edx
jmp 0x1001717f
push 0x1000334c
push esi
call fcn.10019410
test eax, eax
je 0x100170e8
mov ebx, 1
mov edi, 0x10003344
mov dword [0x1002e8b8], ebx
mov dword [0x1002e8dc], ebx
jmp 0x10017164
push 0x10003338
push esi
call fcn.10019410
test eax, eax
je 0x10017130
mov edi, 0x10003330
or ecx, 0xffffffff
xor eax, eax
mov ebx, 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [0x1002e8b8], ebx
mov edx, ecx
mov esi, edi
mov edi, 0x1002e694
mov dword [0x1002e8c0], ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov dword [0x1002e8dc], ebx
mov ecx, edx
jmp 0x1001717f
push 0x10001b68
push esi
call fcn.10019410
test eax, eax
jne 0x1001714e
push 0x10001b5c
push esi
call fcn.10019410
test eax, eax
je 0x1001718d
mov ebx, 1
mov edi, 0x1000332c
mov dword [0x1002e8b8], ebx
mov dword [0x1002e8dc], ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x1002e694
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
call fcn.10016980
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20c
ret