Function at 0x49a6d0
Capabilities:
Terminate process

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ebp, edx
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x38]
jae 0x49a96c
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x14]
push eax
push 0
mov edx, 0x6c
call fcn.0042ff40
mov edx, eax
add esp, 8
test edx, edx
je 0x49a980
mov eax, dword [edi + 0x44]
xor ecx, ecx
mov esi, dword [esp + 0x14]
or ecx, 0xfffa0000
mov dword [eax], edx
mov dword [eax + 4], ecx
inc dword [edx + 4]
add dword [edi + 0x44], 8
test esi, esi
je 0x49a996
push 0x6c
push 0
push esi
call fcn.00587250
add esp, 0xc
mov dword [esi], 0x5c
mov dword [esi + 4], 0
lea ebx, [esi + 0x10]
mov eax, dword [0x624130]
mov edx, 0xfffffffe
mov ecx, edi
mov dword [esi + 8], eax
push 0x61e64c
mov dword [esi + 0xc], 2
call fcn.00410110
add esp, 4
mov ecx, edi
call fcn.00432c40
mov ecx, dword [edi + 0x84]
mov edx, eax
mov dword [edx + 0x14], ecx
test ecx, ecx
je 0x49a784
inc dword [ecx + 4]
mov eax, dword [edi + 0x44]
xor ecx, ecx
or ecx, 0xfff90000
mov dword [eax], edx
mov dword [eax + 4], ecx
inc dword [edx + 4]
add dword [edi + 0x44], 8
mov eax, dword [edi + 0x44]
mov ecx, dword [edi + 0x40]
sub eax, ecx
sar eax, 3
lea edx, [eax - 1]
cmp edx, eax
jae 0x49a7b4
lea eax, [ecx + edx*8]
test eax, eax
jne 0x49a7b9
mov eax, 0x5ee574
mov esi, 0xfff8
cmp word [eax + 6], si
jae 0x49a7c8
xor eax, eax
jmp 0x49a7ca
mov eax, dword [eax]
push 0x61e664
mov edx, 0xfffffffe
mov dword [ebx + 0x10], eax
mov ecx, edi
call fcn.00410110
add esp, 4
mov dword [ebx], edi
mov ecx, edi
call fcn.00471c10
mov dword [ebx + 4], eax
mov eax, dword [edi + 0x44]
mov ecx, dword [edi + 0x40]
sub eax, ecx
sar eax, 3
lea edx, [eax - 1]
cmp edx, eax
jae 0x49a806
lea eax, [ecx + edx*8]
test eax, eax
jne 0x49a80b
mov eax, 0x5ee574
cmp word [eax + 6], si
jae 0x49a815
xor eax, eax
jmp 0x49a817
mov eax, dword [eax]
push 0
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x28]
push 0x40
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x24]
push 1
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x2c]
push 0
mov dword [ebx + 0x3c], ebp
mov dword [ebx + 0x48], eax
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov ecx, edi
mov dword [ebx + 0x18], eax
call fcn.00460410
push 0x49a1d0
push 0x60cc48
mov ecx, edi
call fcn.0045ea50
mov ecx, edi
call fcn.00460410
mov esi, eax
mov edx, 0x61e674
mov ecx, esi
mov dword [ebx + 0x4c], esi
call fcn.00461370
mov edx, 0x61e678
mov ecx, esi
call fcn.00461370
mov edx, 0x61e680
mov ecx, esi
call fcn.00461370
push 6
push 0x18075380
push 0
mov edx, 0x498100
mov ecx, edi
call fcn.00414b50
add esp, 0x14
mov edx, 0xfffffffe
mov ecx, edi
push str.pause
call fcn.00410110
add esp, 4
mov edx, 0x4983d0
mov ecx, edi
push 6
push 0x18075380
push 0
call fcn.00414b50
add esp, 0xc
mov edx, 0xfffffffe
mov ecx, edi
push str.resume
call fcn.00410110
add esp, 4
mov edx, 0x61e698
mov ecx, edi
push 0x49a1b0
call fcn.00471150
add esp, 4
mov edx, 0x61e6a0
mov ecx, edi
push 0xffffffffffffffff
push 0x499a50
call fcn.00471d80
push 6
push 0x18075380
push 0
mov edx, 0x499f80
mov ecx, edi
call fcn.00414b50
add esp, 0x14
mov edx, 0xfffffffe
mov ecx, edi
push str.isPaused
call fcn.00410110
add esp, 4
push 6
push 0x18075380
push 1
mov edx, 0x49a4a0
mov ecx, edi
call fcn.00414b50
add esp, 0xc
mov edx, 0xfffffffe
mov ecx, edi
push str.unshift
call fcn.00410110
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
push str.cannot_push_beyond_allocated_stack
push 0x3001475
mov edx, 0x605bf8
call fcn.0040d970
push str.alloc_failed
push 0x100147e
mov edx, 0x605c28
mov ecx, edi
call fcn.0040d970
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x46d
mov edx, 0x6240d4
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0x46d
push 0x6240f0
push 0x62410c
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.005885bd
int3