Function at 0x10150ad8
Capabilities:
Create thread

Disassembly:
sub esp, 0x10
mov eax, dword [0x101e6040]
xor eax, esp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x18], ecx
mov byte [ecx], 0
lea ecx, [esi - 4]
push edx
call fcn.10150650
mov eax, dword [esi + 0x78]
xor ebx, ebx
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x10150be2
nop dword [eax]
cmp ebx, dword [esi + 0x60]
je 0x10150bd6
mov eax, dword [esi + 0x74]
mov edi, dword [eax + ebx*4]
mov eax, dword [edi + 4]
test eax, eax
je 0x10150b2f
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x10150b40
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [edi + 4], eax
test eax, eax
je 0x10150b48
xor ecx, ecx
jmp 0x10150b54
call ebp
test eax, eax
mov ecx, 1
cmovne ecx, eax
test ecx, ecx
jne 0x10150c9e
mov eax, dword [edi + 8]
test eax, eax
je 0x10150b6c
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x10150b7d
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [edi + 8], eax
test eax, eax
je 0x10150b85
xor ecx, ecx
jmp 0x10150b91
call ebp
test eax, eax
mov ecx, 1
cmovne ecx, eax
test ecx, ecx
jne 0x10150c9e
mov byte [edi + 0x10], cl
cmp dword [edi + 0xc], ecx
jne 0x10150bd6
lea eax, [esp + 0x18]
push eax
push ecx
push edi
push 0x10151150
push ecx
push ecx
call fcn.10161c9f
add esp, 0x18
mov dword [edi + 0xc], eax
test eax, eax
je 0x10150bc2
xor ecx, ecx
jmp 0x10150bce
call ebp
test eax, eax
mov ecx, 1
cmovne ecx, eax
test ecx, ecx
jne 0x10150c9e
mov eax, dword [esi + 0x78]
inc ebx
cmp ebx, eax
jb 0x10150b10
xor edi, edi
test eax, eax
je 0x10150c22
mov ebx, dword [sym.imp.KERNEL32.dll_SetEvent]
nop
cmp edi, dword [esi + 0x60]
je 0x10150c1c
mov eax, dword [esi + 0x74]
mov eax, dword [eax + edi*4]
push dword [eax + 4]
mov byte [eax + 0x10], 0
call ebx
test eax, eax
jne 0x10150c1c
call ebp
test eax, eax
mov ecx, 1
cmovne ecx, eax
test ecx, ecx
jne 0x10150c9e
inc edi
cmp edi, dword [esi + 0x78]
jb 0x10150bf0
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x74]
push dword [esp + 0x10]
mov ecx, dword [ecx + eax*4]
call fcn.10150020
mov ebp, dword [esi + 0x78]
xor edi, edi
xor ebx, ebx
test ebp, ebp
je 0x10150cc0
cmp ebx, dword [esi + 0x60]
je 0x10150c70
mov eax, dword [esi + 0x74]
push 0xffffffffffffffff
mov eax, dword [eax + ebx*4]
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x10150c6b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x10150c6b
or eax, 0xffffffff
test edi, edi
cmove edi, eax
mov ebp, dword [esi + 0x78]
inc ebx
cmp ebx, ebp
jb 0x10150c43
test edi, edi
je 0x10150cc0
jle 0x10150c87
movzx edi, di
or edi, 0x80070000
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xc]
xor ecx, esp
call fcn.10151433
add esp, 0x10
ret 0x10
jle 0x10150ca9
movzx ecx, cx
or ecx, 0x80070000
pop edi
pop esi
pop ebp
mov eax, ecx
pop ebx
mov ecx, dword [esp + 0xc]
xor ecx, esp
call fcn.10151433
add esp, 0x10
ret 0x10
xor edx, edx
test ebp, ebp
je 0x10150ce7
mov ecx, dword [esi + 0x74]
nop dword [eax]
mov eax, dword [ecx]
cmp dword [eax + 0x6c], 0x80004004
je 0x10150db3
inc edx
add ecx, 4
cmp edx, ebp
jb 0x10150cd0
mov edi, dword [esi + 0x78]
xor ecx, ecx
test edi, edi
je 0x10150d9c
mov edx, dword [esi + 0x74]
nop word [eax + eax]
mov eax, dword [edx]
cmp dword [eax + 0x6c], 0x8007000e
je 0x10150de7
inc ecx
add edx, 4
cmp ecx, edi
jb 0x10150d00
mov edx, dword [esi + 0x74]
xor ecx, ecx
nop dword [eax]
mov eax, dword [edx]
mov eax, dword [eax + 0x6c]
test eax, eax
je 0x10150d3c
cmp eax, 0x20000010
je 0x10150d3c
cmp eax, 1
je 0x10150d3c
cmp eax, 0x80004005
jne 0x10150d9e
inc ecx
add edx, 4
cmp ecx, edi
jb 0x10150d20
mov edx, dword [esi + 0x74]
xor ecx, ecx
nop dword [eax]
mov eax, dword [edx]
cmp dword [eax + 0x6c], 1
je 0x10150dcd
inc ecx
add edx, 4
cmp ecx, edi
jb 0x10150d50
mov edx, dword [esi + 0x74]
xor ecx, ecx
mov eax, dword [edx]
mov eax, dword [eax + 0x6c]
test eax, eax
je 0x10150d75
cmp eax, 0x20000010
jne 0x10150d9e
inc ecx
add edx, 4
cmp ecx, edi
jb 0x10150d65
mov ebx, dword [esp + 0x14]
xor edi, edi
mov eax, dword [esi + 0x74]
push ebx
mov ecx, dword [eax + edi*4]
add ecx, 0x18
call fcn.1014e690
test eax, eax
jne 0x10150d9e
inc edi
cmp edi, dword [esi + 0x78]
jb 0x10150d83
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xc]
xor ecx, esp
call fcn.10151433
add esp, 0x10
ret 0x10
pop edi
pop esi
pop ebp
mov eax, 0x80004004
pop ebx
mov ecx, dword [esp + 0xc]
xor ecx, esp
call fcn.10151433
add esp, 0x10
ret 0x10
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0xc]
xor ecx, esp
call fcn.10151433
add esp, 0x10
ret 0x10
mov ecx, dword [esp + 0x1c]
mov eax, 0x8007000e
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10151433
add esp, 0x10
ret 0x10