Function at 0x10001709
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1001d0e5
mov eax, dword fs:[0]
push eax
sub esp, 0x178
mov eax, dword [0x10027740]
xor eax, esp
mov dword [esp + 0x170], eax
push ebx
push esi
push edi
mov eax, dword [0x10027740]
xor eax, esp
push eax
lea eax, [esp + 0x188]
mov dword fs:[0], eax
cmp byte [0x10029c30], 0
jne 0x10001ce3
lea ecx, [esp + 0x134]
mov byte [0x10029c30], 1
call fcn.1000136e
and dword [esp + 0x190], 0
push 0x10029c38
mov byte [0x10029c31], 1
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov edi, 0x10029c50
lea ecx, [esp + 0x18]
mov eax, 0x1010101
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call fcn.100013b4
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x18], eax
mov edi, dword [eax + ecx]
lea esi, [ecx + 4]
lea esi, [esi + eax]
mov ecx, dword [esi + edi]
mov dword [esp + 0x20], ecx
lea ecx, [edi + 4]
lea ecx, [ecx + esi]
mov dword [esp + 0x24], ecx
je 0x10001cd7
test esi, esi
je 0x10001cd7
test ecx, ecx
je 0x10001cd7
push edi
call fcn.100053d9
pop ecx
push edi
mov ebx, eax
push esi
push ebx
call fcn.10007e90
pop ecx
pop ecx
mov edx, edi
mov ecx, ebx
call fcn.1000536f
mov eax, ebx
pop ecx
test edi, edi
jle 0x10001803
mov ecx, edi
add byte [eax], 0x14
inc eax
dec ecx
jne 0x100017fc
push dword [esp + 0x20]
call fcn.100053d9
pop ecx
push dword [esp + 0x20]
mov esi, eax
push dword [esp + 0x28]
mov dword [esp + 0x30], esi
push esi
call fcn.10007e90
mov edx, dword [esp + 0x2c]
pop ecx
pop ecx
mov ecx, esi
call fcn.1000536f
mov eax, dword [esp + 0x1c]
pop ecx
lea ecx, [esp + 0xec]
mov esi, dword [eax]
mov edx, esi
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
call fcn.10001327
push eax
mov edx, str.clink
mov byte [esp + 0x194], 1
lea ecx, [esp + 0xd8]
call fcn.100025c0
mov byte [esp + 0x194], 2
lea ecx, [esp + 0x120]
mov edx, eax
mov dword [esp], str..exe
call fcn.100025f0
pop ecx
push 0
push 1
lea ecx, [esp + 0xdc]
call fcn.10002052
push 0
push 1
lea ecx, [esp + 0xf4]
mov byte [esp + 0x198], 5
call fcn.10002052
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.10001327
push eax
mov edx, str.clinkMsg
mov byte [esp + 0x194], 6
lea ecx, [esp + 0x30]
call fcn.100025c0
mov byte [esp + 0x194], 7
lea ecx, [esp + 0x108]
mov edx, eax
mov dword [esp], str..exe
call fcn.100025f0
pop ecx
push 0
push 1
lea ecx, [esp + 0x34]
call fcn.10002052
push 0
push 1
lea ecx, [esp + 0x4c]
mov byte [esp + 0x198], 0xa
call fcn.10002052
lea eax, [esp + 0x11c]
push eax
lea ecx, [esp + 0xc0]
call fcn.10001d80
mov byte [esp + 0x190], 0xb
lea eax, [esp + 0x104]
push eax
lea ecx, [esp + 0xa8]
call fcn.10001d80
mov byte [esp + 0x190], 0xc
lea ecx, [esp + 0xbc]
cmp dword [esp + 0xd0], 0x10
mov byte [esp + 0x16], 1
cmovae ecx, dword [esp + 0xbc]
call fcn.10003ac3
test al, al
je 0x10001991
cmp dword [esp + 0xd0], 0x10
lea edx, [esp + 0xbc]
lea ecx, [esp + 0x18]
cmovae edx, dword [esp + 0xbc]
call fcn.10003b5d
mov esi, dword [esp + 0x18]
test esi, esi
jne 0x10001998
mov byte [esp + 0x17], 0
jmp 0x100019b1
push dword [esp + 0x1c]
push esi
push edi
push ebx
call fcn.10001417
push esi
mov byte [esp + 0x2b], al
call fcn.10006540
add esp, 0x14
cmp dword [esp + 0x24], 0
jne 0x10001a26
cmp dword [esp + 0xb8], 0x10
lea ecx, [esp + 0xa4]
cmovae ecx, dword [esp + 0xa4]
call fcn.10003ac3
test al, al
je 0x10001a00
cmp dword [esp + 0xb8], 0x10
lea edx, [esp + 0xa4]
lea ecx, [esp + 0x18]
cmovae edx, dword [esp + 0xa4]
call fcn.10003b5d
mov esi, dword [esp + 0x18]
test esi, esi
jne 0x10001a07
mov byte [esp + 0x16], 0
jmp 0x10001a26
push dword [esp + 0x1c]
push esi
push dword [esp + 0x28]
push dword [esp + 0x34]
call fcn.10001417
push esi
mov byte [esp + 0x2a], al
call fcn.10006540
add esp, 0x14
cmp byte [esp + 0x17], 0
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
jne 0x10001a9d
sub esp, 0x18
lea eax, [esp + 0x134]
mov ecx, esp
push eax
call fcn.10001d80
call fcn.100051d5
add esp, 0x18
push 0x64
call esi
cmp dword [esp + 0xd0], 0x10
lea edx, [esp + 0xbc]
push ecx
cmovae edx, dword [esp + 0xc0]
lea ecx, [esp + 0x60]
push edi
push ebx
call fcn.10003c82
add esp, 0xc
push eax
lea ecx, [esp + 0x138]
mov byte [esp + 0x194], 0xd
call fcn.10001d24
lea ecx, [esp + 0x5c]
mov byte [esp + 0x190], 0xc
call fcn.10001d07
mov al, byte [esp + 0x16]
test al, al
jne 0x10001b11
sub esp, 0x18
lea eax, [esp + 0x11c]
mov ecx, esp
push eax
call fcn.10001d80
call fcn.100051d5
add esp, 0x18
push 0x64
call esi
cmp dword [esp + 0xb8], 0x10
lea edx, [esp + 0xa4]
push ecx
push dword [esp + 0x24]
cmovae edx, dword [esp + 0xac]
lea ecx, [esp + 0x64]
push dword [esp + 0x30]
call fcn.10003c82
add esp, 0xc
push eax
lea ecx, [esp + 0x138]
mov byte [esp + 0x194], 0xe
call fcn.10001d24
lea ecx, [esp + 0x5c]
call fcn.10001d07
mov al, byte [esp + 0x16]
cmp al, 0x5a
jne 0x10001b60
push 0
push str.Progman
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, dword [sym.imp.USER32.dll_FindWindowExW]
push 0
push str.SHELLDLL_DefView
push 0
push eax
call esi
push 0
push str.SysListView32
push 0
push eax
call esi
mov esi, dword [sym.imp.USER32.dll_PostMessageW]
mov edi, eax
push 0
push 0x74
push 0x100
push edi
call esi
push 0
push 0x74
push 0x101
push edi
call esi
push ebx
call fcn.10006540
pop ecx
push dword [esp + 0x28]
call fcn.10006540
xor eax, eax
lea edi, [esp + 0xd8]
stosd dword es:[edi], eax
xor ebx, ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
sub esp, 0x14
mov byte [esp + 0x1a8], 0xf
lea eax, [esp + 0x134]
mov ecx, esp
push eax
call fcn.10001d80
lea ecx, [esp + 0xec]
call fcn.100050b1
mov eax, dword [esp + 0xf0]
add esp, 0x18
sub eax, dword [esp + 0xd4]
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, 0xfffffffc
jne 0x10001bf8
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0xc4]
mov ecx, 0x100285c8
push eax
call fcn.10001fbe
push ebx
push ebx
push ebx
push 0x100016cf
push ebx
push ebx
call esi
cmp dword [esp + 0x24], 0
jne 0x10001c8f
xor eax, eax
lea edi, [esp + 0xec]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], ebx
sub esp, 0x18
mov byte [esp + 0x1a8], 0x10
lea eax, [esp + 0x11c]
mov ecx, esp
push eax
call fcn.10001d80
lea ecx, [esp + 0x104]
call fcn.100050b1
mov eax, dword [esp + 0x108]
add esp, 0x18
sub eax, dword [esp + 0xec]
test eax, 0xfffffffc
jne 0x10001c83
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0xac]
mov ecx, 0x100285e0
push eax
call fcn.10001fbe
push ebx
push ebx
push ebx
push 0x100016ec
push ebx
push ebx
call esi
lea ecx, [esp + 0xec]
call fcn.10001e0c
lea ecx, [esp + 0xd4]
call fcn.10001e0c
push ebx
push 1
lea ecx, [esp + 0xac]
call fcn.10002052
push ebx
push 1
lea ecx, [esp + 0xc4]
call fcn.10002052
push ebx
push 1
lea ecx, [esp + 0x10c]
call fcn.10002052
push ebx
push 1
lea ecx, [esp + 0x124]
call fcn.10002052
lea ecx, [esp + 0x134]
call fcn.10001d07
mov ecx, dword [esp + 0x188]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x170]
xor ecx, esp
call fcn.10005e3f
mov esp, ebp
pop ebp
ret