Function at 0x49a3a0
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 0x49a637
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x14]
push eax
push 0
mov edx, 0x6c
call fcn.0042f6e0
mov edx, eax
add esp, 8
test edx, edx
je 0x49a64b
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 0x49a661
push 0x6c
push 0
push esi
call fcn.005869c0
add esp, 0xc
mov dword [esi], 0x5c
mov dword [esi + 4], 0
lea ebx, [esi + 0x10]
mov eax, dword [0x61c4d0]
mov edx, 0xfffffffe
mov ecx, edi
mov dword [esi + 8], eax
push 0x616a38
mov dword [esi + 0xc], 2
call fcn.0040f8b0
add esp, 4
mov ecx, edi
call fcn.004323e0
mov ecx, dword [edi + 0x84]
mov edx, eax
mov dword [edx + 0x14], ecx
test ecx, ecx
je 0x49a454
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 0x49a484
lea eax, [ecx + edx*8]
test eax, eax
jne 0x49a489
mov eax, 0x5ed574
mov esi, 0xfff8
cmp word [eax + 6], si
jae 0x49a498
xor eax, eax
jmp 0x49a49a
mov eax, dword [eax]
push 0x616a50
mov edx, 0xfffffffe
mov dword [ebx + 0x10], eax
mov ecx, edi
call fcn.0040f8b0
add esp, 4
mov dword [ebx], edi
mov ecx, edi
call fcn.00470e90
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 0x49a4d6
lea eax, [ecx + edx*8]
test eax, eax
jne 0x49a4db
mov eax, 0x5ed574
cmp word [eax + 6], si
jae 0x49a4e5
xor eax, eax
jmp 0x49a4e7
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.0045f800
push 0x499ec0
push 0x60b5c8
mov ecx, edi
call fcn.0045e1e0
mov ecx, edi
call fcn.0045f800
mov esi, eax
mov edx, 0x616a60
mov ecx, esi
mov dword [ebx + 0x4c], esi
call fcn.004606c0
mov edx, 0x616a64
mov ecx, esi
call fcn.004606c0
mov edx, 0x616a6c
mov ecx, esi
call fcn.004606c0
push 6
push 0x18075380
push 0
mov edx, 0x497e50
mov ecx, edi
call fcn.004142f0
add esp, 0x14
mov edx, 0xfffffffe
mov ecx, edi
push str.pause
call fcn.0040f8b0
add esp, 4
mov edx, 0x498110
mov ecx, edi
push 6
push 0x18075380
push 0
call fcn.004142f0
add esp, 0xc
mov edx, 0xfffffffe
mov ecx, edi
push str.resume
call fcn.0040f8b0
add esp, 4
mov edx, 0x616a84
mov ecx, edi
push 0x499ea0
call fcn.004702c0
push 0x499770
mov edx, 0x616a8c
mov ecx, edi
call fcn.00471000
push 6
push 0x18075380
push 0
mov edx, 0x499c90
mov ecx, edi
call fcn.004142f0
add esp, 0x14
mov edx, 0xfffffffe
mov ecx, edi
push str.isPaused
call fcn.0040f8b0
add esp, 4
mov edx, 0x49a180
push 6
push 0x18075380
push 1
mov ecx, edi
call fcn.004142f0
add esp, 0xc
mov edx, 0xfffffffe
mov ecx, edi
push str.unshift
call fcn.0040f8b0
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, 0x6045c0
call fcn.0040d110
push str.alloc_failed
push 0x100147e
mov edx, 0x6045f0
mov ecx, edi
call fcn.0040d110
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x46d
mov edx, 0x61c474
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0x46d
push 0x61c490
push 0x61c4ac
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
int3