Function at 0x78842006
Capabilities:
Resume thread
Suspend thread

Disassembly:
mov dword [ebp - 0x4f8], esi
cmp esi, edi
je 0x78841f0e
push esi
call fcn.78841e0c
mov esi, dword [esi + 0x14]
jmp 0x78841df3
cmp byte [0x7891e2b8], 0
je 0x78841f24
test byte [0x7891e298], 3
je 0x7888f653
mov dword [0x7891e2c4], edi
mov dword [0x7891e280], edi
mov eax, dword [0x7891e1fc]
mov dword [0x7891e1f8], eax
or dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x4e9], 0
jne 0x7888f6e4
mov eax, dword [0x7891e534]
cmp eax, dword [0x7891e528]
ja 0x788421e9
mov eax, dword [ebp - 0x4f4]
mov dword [0x7891e280], eax
mov ebx, 0x7891e350
mov esi, dword [0x7891e350]
test esi, esi
jne 0x78841f9d
and dword [0x7891e280], esi
dec dword [0x7891e354]
lea ecx, [ebp - 0x500]
call fcn.7880d550
mov ecx, dword [ebp - 0x1c]
call fcn.78809964
call fcn.78801370
ret 4
cmp byte [esi + 0x18], 0
je 0x78841fbc
lea edi, [esi + 0xc]
push edi
call fcn.788fa97a
and eax, 0xfffffff9
push eax
push esi
call fcn.788fa97a
mov dword [edi], esi
mov byte [esi + 0x18], 0
push ebx
push esi
call fcn.788214aa
mov ebx, eax
mov esi, dword [ebx]
jmp 0x78841f72
push 0x530
push 0x78842100
call fcn.78801330
mov eax, dword [0x7891e1e4]
mov dword [ebp - 0x1c], eax
xor esi, esi
mov dword [ebp - 0x4f4], esi
mov byte [ebp - 0x4e9], 0
mov byte [ebp - 0x4ea], 0
mov ecx, 0x133
xor eax, eax
lea edi, [ebp - 0x4e8]
rep stosd dword es:[edi], eax
cmp byte [0x7891a1ac], al
jne 0x78841f8d
push dword [0x7891e52c]
lea ecx, [ebp - 0x500]
call fcn.788fa97a
mov eax, dword [0x7891e290]
cmp dword [eax + 0x24], esi
jg 0x7884232d
mov eax, dword [0x7891e294]
cmp dword [eax + 0x24], esi
jg 0x7884232d
inc dword [0x7891e298]
call fcn.788214ec
mov dword [ebp - 4], esi
mov byte [0x7891e538], 0
mov eax, dword [0x7891e528]
mov dword [0x7891e534], eax
call fcn.7880f9ca
mov ebx, eax
mov dword [ebp - 0x4f4], ebx
push ebx
call fcn.78814c2e
mov esi, dword [0x7891e340]
mov dword [0x7891e350], esi
mov dword [ebp - 0x4f8], esi
test esi, esi
je 0x7884210c
cmp byte [esi + 0x44], 0
jne 0x7888f5ce
cmp byte [esi + 0x18], 0
jne 0x7884230e
lea edi, [esi + 0xc]
push edi
call fcn.788fa97a
push esi
call fcn.788fa97a
mov dword [ebp - 0x51c], eax
mov dword [edi], eax
mov dword [esi + 4], esi
mov byte [esi + 0x18], 1
mov esi, dword [esi + 0x14]
jmp 0x788420b9
cmp byte [0x7891e358], 0
jne 0x78842317
mov eax, dword [0x7891e1fc]
mov dword [0x7891e1f8], eax
mov esi, dword [0x7891e350]
mov dword [ebp - 0x4f8], esi
xor edi, edi
cmp esi, edi
je 0x788421c9
mov byte [ebp - 0x4ea], 0
push dword [0x7891a1a8]
lea ecx, [ebp - 0x4f0]
call fcn.788fa97a
mov byte [ebp - 0x4ea], 1
cmp dword [esi + 0x2c], edi
je 0x788421aa
xor ebx, ebx
cmp esi, dword [ebp - 0x4f4]
sete bl
mov byte [ebp - 0x4f9], bl
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x504], edi
test edi, edi
je 0x788421aa
test bl, bl
je 0x7888f5d9
mov byte [esi + 0x1a], 1
test byte [ebp + 8], 4
je 0x78842651
test bl, bl
je 0x78842651
mov byte [esi + 0x1a], 0
cmp byte [0x7891e538], 0
jne 0x7888f643
lea ecx, [ebp - 0x4f0]
call fcn.7880d550
mov esi, dword [esi + 0x14]
mov dword [ebp - 0x4f8], esi
mov ebx, dword [ebp - 0x4f4]
jmp 0x7884212f
mov dword [0x7891e2c4], ebx
mov dword [0x7891e280], ebx
push edi
push 1
push ebx
call fcn.788164f1
mov esi, dword [0x7891e350]
jmp 0x78841df3
sub eax, 4
mov dword [0x7891e534], eax
mov eax, dword [eax]
lea esi, [eax + 4]
push esi
call fcn.788fa97a
and eax, 0xfffffffd
mov dword [esi], eax
jmp 0x78841f4b
mov byte [esi + 0x19], 0
jmp 0x788420f5
mov dword [0x7891e1ec], 0x78809ead
mov byte [0x7891e358], 0
jmp 0x78842119
cmp byte [0x7891e358], 0
jne 0x78841f82
jmp 0x78841f7c
mov dword [ebp - 0x4e8], 0x10007
lea eax, [ebp - 0x4e8]
push eax
push edi
call dword [sym.imp.kernel32.dll_GetThreadContext]
test eax, eax
je 0x7888f615
movzx edi, bl
push esi
push edi
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x4e8]
push eax
call fcn.788423fb
mov eax, dword [ebp - 0x424]
mov dword [ebp - 0x50c], eax
push 0x1c
lea ecx, [ebp - 0x540]
push ecx
push eax
call dword [sym.imp.kernel32.dll_VirtualQuery]
test eax, eax
je 0x7888f615
mov eax, dword [ebp - 0x540]
mov ecx, dword [ebp - 0x534]
add eax, ecx
mov dword [ebp - 0x524], eax
push esi
push edi
push eax
push dword [ebp - 0x50c]
call fcn.788423fb
mov edi, dword [ebp - 0x504]
test bl, bl
je 0x7888f623
jmp 0x78842199
push esi
call fcn.78814c2e
jmp 0x788420cd
push edi
call dword [sym.imp.kernel32.dll_SuspendThread]
mov dword [ebp - 0x520], eax
cmp eax, 0xffffffff
je 0x7888f60b
cmp dword [esi + 0x2c], 0
jne 0x78842183
push edi
call dword [sym.imp.kernel32.dll_ResumeThread]
mov dword [ebp - 0x514], eax
cmp eax, 0xffffffff
jne 0x788421aa
call fcn.788b073f
jmp 0x788421aa
call fcn.788b073f
mov byte [ebp - 0x4e9], 1
jmp 0x7888f643
push edi
call dword [sym.imp.kernel32.dll_ResumeThread]
mov dword [ebp - 0x518], eax
cmp eax, 0xffffffff
jne 0x78842199
call fcn.788b073f
jmp 0x78842199
lea ecx, [ebp - 0x4f0]
call fcn.7880d550
jmp 0x78841f3a
push dword [0x7891e290]
lea ecx, [ebp - 0x510]
call fcn.788fa97a
push dword [0x7891e2a0]
call fcn.7888f3d3
lea ecx, [ebp - 0x510]
call fcn.7880d550
push dword [0x7891e294]
lea ecx, [ebp - 0x508]
call fcn.788fa97a
push dword [0x7891e29c]
call fcn.7888f3d3
lea ecx, [ebp - 0x508]
call fcn.7880d550
jmp 0x78841f24
mov esi, dword [0x7891e350]
jmp 0x7888f714
cmp byte [esi + 0x1a], 0
je 0x7888f711
cmp esi, dword [ebp - 0x4f4]
je 0x7888f70d
push dword [esi + 0x10]
call dword [sym.imp.kernel32.dll_ResumeThread]
cmp eax, 0xffffffff
jne 0x7888f70d
call fcn.788b073f
mov byte [esi + 0x1a], 0
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x7888f6ec
jmp 0x78841f4b