Function at 0x1002f290
Capabilities:
Create thread

Disassembly:
mov eax, 0x10069014
call fcn.100575f8
sub esp, 0x5f8
mov eax, dword [0x10084500]
push ebx
push esi
mov dword [ebp - 0x10], eax
push edi
xor edi, edi
lea eax, [ebp + 8]
inc edi
push eax
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], edi
call fcn.100015f3
lea eax, [ebp - 0x5d0]
push eax
mov byte [ebp - 4], 2
call fcn.10057f09
xor ebx, ebx
cmp dword [ebp + 0x1c], 0x400
pop ecx
ja 0x1002f330
cmp dword [0x10083fe0], 0xc800
jae 0x1002f330
push 0xffffffffffffffff
push dword [0x10086074]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 8]
mov esi, 0x10083fcc
push eax
mov ecx, esi
call fcn.10002e80
push 0x1006ca8c
mov ecx, esi
call fcn.10003017
mov ecx, dword [0x10085fc8]
push 0x10083fcc
push 0x12
call fcn.1000ad76
push dword [0x10086074]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [ebp - 0x5d0]
mov esi, dword [0x100856c8]
mov eax, dword [ebp - 0x5cc]
mov edx, dword [0x100856cc]
sub ecx, esi
sbb eax, edx
cmp eax, dword [0x10083604]
jg 0x1002f378
jl 0x1002f35e
cmp ecx, dword [0x10083600]
jae 0x1002f378
cmp dword [ebp - 0x5cc], edx
jl 0x1002f378
jg 0x1002f7db
cmp dword [ebp - 0x5d0], esi
ja 0x1002f7db
mov eax, dword [0x10085994]
mov ecx, dword [eax + 0x30]
cmp ecx, dword [eax + 0x2c]
jge 0x1002f7db
cmp dword [0x10085fcc], ebx
je 0x1002f7db
push 0x3e8
push dword [0x10089c2c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x1002f7db
lea ecx, [ebp - 0x13c]
call fcn.1000fae3
push 0xf
pop esi
push ebx
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x30], esi
call fcn.1000125d
push ebx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x4c], esi
call fcn.1000125d
lea eax, [ebp - 0x5e8]
push eax
mov byte [ebp - 4], 5
call fcn.10057f09
cmp dword [ebp + 0x20], 0x10
mov eax, dword [ebp + 0xc]
pop ecx
mov dword [ebp - 0x5e0], ebx
mov byte [ebp - 0x5dc], bl
mov dword [ebp - 0x5d8], edi
jae 0x1002f406
lea eax, [ebp + 0xc]
mov ecx, dword [0x10085fcc]
mov edx, dword [ecx]
lea esi, [ebp - 0x13c]
push esi
push 0x100840ac
push ebx
lea esi, [ebp - 0x64]
push esi
lea esi, [ebp - 0x48]
push esi
sub esp, 0xc
mov edi, esp
lea esi, [ebp - 0x5e0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [edx]
test eax, eax
jl 0x1002f7ab
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x48]
push eax
mov ecx, 0x10084074
call fcn.100014f5
cmp dword [0x1008408c], 0x10
mov eax, dword [0x10084078]
jae 0x1002f460
mov eax, 0x10084078
push eax
lea eax, [ebp - 0x5bc]
push str.88888____s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x64]
push eax
mov ecx, 0x10084090
call fcn.100014f5
mov eax, dword [ebp - 0x13c]
push 0xffffffffffffffff
mov dword [0x10085978], eax
push ebx
lea eax, [ebp + 8]
push eax
mov ecx, 0x10084058
call fcn.100014f5
cmp dword [ebp - 0x10c], 1
setne al
cmp dword [ebp - 0xa0], 1
mov byte [0x10083ea8], al
jne 0x1002f52c
push 0xc
call fcn.100565f2
push dword [ebp - 0x34]
mov esi, eax
call fcn.100565f2
mov edi, 0xd8
push edi
mov dword [esi], eax
call fcn.100565f2
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x44]
add esp, 0xc
cmp dword [ebp - 0x30], 0x10
jae 0x1002f4eb
lea eax, [ebp - 0x44]
push eax
push dword [esi]
call fcn.10057da0
push edi
lea eax, [ebp - 0x13c]
push eax
push dword [esi + 4]
call fcn.10056df0
add esp, 0x14
lea eax, [ebp - 0x5d4]
push eax
push ebx
push esi
push 0x1002eb6b
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1002f7ab
mov ecx, dword [0x10085fcc]
cmp ecx, ebx
mov dword [ebp - 0x5c8], ebx
mov dword [ebp - 0x5c0], ebx
je 0x1002f572
mov eax, dword [ecx]
lea edx, [ebp - 0x5c0]
push edx
lea edx, [ebp - 0x5c8]
push edx
call dword [eax + 0x14]
test al, al
je 0x1002f572
push dword [ebp - 0x5c0]
mov ecx, dword [0x10085fc8]
push dword [ebp - 0x5c8]
push 6
call fcn.1000acf9
lea eax, [ebp - 0x5e8]
push eax
call fcn.10057f50
mov esi, dword [eax + 0xc]
mov eax, dword [0x10085994]
add eax, 0x40
push eax
call fcn.10057f50
cmp dword [eax + 0xc], esi
pop ecx
pop ecx
je 0x1002f5a9
mov eax, dword [0x10085994]
mov dword [eax + 0x30], ebx
mov ecx, dword [0x10085994]
call fcn.1002130c
push 0x100856c8
call fcn.10057f09
mov eax, dword [0x10085994]
cmp eax, ebx
pop ecx
je 0x1002f5e5
push ebx
call fcn.10057f09
pop ecx
mov ecx, dword [0x10085994]
mov dword [ecx + 0x40], eax
mov eax, dword [0x10085994]
mov dword [eax + 0x44], edx
mov ecx, dword [0x10085994]
call fcn.1002130c
mov eax, dword [0x10085994]
inc dword [eax + 0x30]
mov ecx, dword [0x10085994]
call fcn.1002130c
lea ecx, [ebp - 0x1bc]
call fcn.1000de21
lea eax, [ebp - 0x1bc]
push eax
sub esp, 0x1c
lea eax, [ebp - 0x48]
mov ecx, esp
mov dword [ebp - 0x5c4], esp
push eax
mov byte [ebp - 4], 6
mov dword [ebp - 0x174], ebx
call fcn.100015f3
lea eax, [ebp - 0x604]
push eax
call fcn.1000ea79
add esp, 0x24
cmp dword [eax + 0x18], 0x10
mov byte [ebp - 4], 7
jb 0x1002f641
mov eax, dword [eax + 4]
jmp 0x1002f644
add eax, 4
push eax
lea ecx, [ebp - 0x2c]
call fcn.10001619
push ebx
push 1
lea ecx, [ebp - 0x604]
mov byte [ebp - 4], 6
call fcn.10001293
mov edi, 0x100836fc
mov esi, 0x10089c40
push edi
mov ecx, esi
call fcn.100103ac
push 0xffffffffffffffff
push ebx
push 0x10084090
mov ecx, eax
call fcn.100014f5
push edi
mov ecx, esi
call fcn.100103ac
push 0xffffffffffffffff
add eax, 0x38
push ebx
push 0x100840ac
mov ecx, eax
call fcn.100014f5
push edi
mov ecx, esi
call fcn.100103ac
push 0xffffffffffffffff
push ebx
lea ecx, [ebp + 8]
add eax, 0x1c
push ecx
mov ecx, eax
call fcn.100014f5
push edi
mov ecx, esi
call fcn.100103ac
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x2c]
add eax, 0x54
push ecx
mov ecx, eax
call fcn.100014f5
push ebx
call fcn.10057f09
pop ecx
mov ebx, eax
mov eax, edx
push edi
mov ecx, esi
mov dword [ebp - 0x5c4], eax
call fcn.100103ac
mov dword [eax + 0x80], ebx
mov ebx, dword [ebp - 0x5c4]
push edi
mov ecx, esi
mov dword [eax + 0x84], ebx
call fcn.100103ac
mov dword [eax + 0x78], 1
call fcn.10022103
inc dword [0x100836fc]
push 0xc
call fcn.100565f2
mov esi, eax
mov dword [esp], pe_nt_image_headers32
call fcn.100565f2
mov dword [esi], eax
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
pop ecx
jae 0x1002f735
lea eax, [ebp - 0x28]
push eax
call fcn.10056d60
add eax, 0x64
push eax
call fcn.100565f2
mov dword [esi + 4], eax
xor eax, eax
xor ebx, ebx
cmp dword [ebp - 0xa4], ebx
pop ecx
sete al
pop ecx
mov dword [esi + 8], eax
cmp dword [ebp + 0x3c], 0x10
mov eax, dword [ebp + 0x28]
jae 0x1002f765
lea eax, [ebp + 0x28]
push eax
push dword [esi]
call fcn.10057da0
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x28]
pop ecx
pop ecx
jae 0x1002f77b
lea eax, [ebp - 0x28]
push eax
push dword [esi + 4]
call fcn.10057da0
pop ecx
pop ecx
lea eax, [ebp - 0x5d4]
push eax
push ebx
push esi
push 0x1002cd45
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
lea ecx, [ebp - 0x1bc]
mov byte [ebp - 4], 5
call fcn.1000dea0
push dword [0x10089c2c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push ebx
push 1
lea ecx, [ebp - 0x64]
call fcn.10001293
push ebx
push 1
lea ecx, [ebp - 0x48]
call fcn.10001293
lea ecx, [ebp - 0x13c]
call fcn.1000e9e3
xor edi, edi
inc edi
push ebx
lea ecx, [ebp - 0x2c]
push edi
call fcn.10001293
push ebx
lea ecx, [ebp + 8]
push edi
call fcn.10001293
push ebx
lea ecx, [ebp + 0x24]
push edi
call fcn.10001293
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
call fcn.100568ae
pop edi
pop esi
pop ebx
leave
ret