Function at 0x46ab10
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x6009e4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x6234ac]
push ebx
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
push esi
push edi
test eax, eax
jne 0x46ab45
lea esp, [ebp - 0x54]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00584a28
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x6234ac]
mov dword [ebp - 0x38], ebx
mov esi, dword [eax + 4]
mov edi, dword [eax + 0xc]
lea eax, [esi*4 + 0x24]
call fcn.005851e0
mov ecx, esp
lea edx, [esi*4]
push 1
push 4
call fcn.004ae4d0
mov esi, eax
add esp, 8
lea eax, [esi + 4]
mov dword [esi], eax
test edi, edi
je 0x46aba3
xor ecx, ecx
test edi, edi
je 0x46ab93
mov eax, dword [edi]
jmp 0x46ab95
xor eax, eax
mov dword [esi + ecx*4], eax
inc ecx
mov edi, dword [edi + 8]
test edi, edi
jne 0x46ab8f
mov dword [ebp - 0x38], ecx
mov eax, dword [0x6234ac]
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x44], ebx
test edi, edi
jle 0x46b00e
mov eax, dword [0x6234ac]
xor ebx, ebx
push 0xffffffffffffffff
mov dword [ebp - 0x40], ebx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esi]
call fcn.004ae5d0
test eax, eax
je 0x46af8f
mov eax, dword [esi]
mov edi, dword [eax + 8]
cmp dword [edi + 8], ebx
je 0x46acba
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [edi + 8], eax
je 0x46acba
mov edi, dword [ebp + 8]
lea eax, [edi*4 + 0x28]
push eax
call fcn.0058d200
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x46b024
lea ecx, [edi*4 + 0x28]
push ecx
push 0
push ebx
call fcn.005869c0
lea eax, [edi*4 + 0x18]
mov dword [ebx + 4], 0
mov dword [ebx], eax
add esp, 0xc
mov eax, dword [0x61c4d0]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
add ebx, 0x10
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0
push 0x40
push 0
push 0
mov dword [ebx + 0x10], eax
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov dword [ebx + 0xc], eax
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov dword [ebx + 8], eax
mov eax, dword [esi]
mov eax, dword [eax]
mov dword [ebx], eax
mov dword [ebx + 0x14], edi
test edi, edi
jle 0x46aca0
lea ecx, [ebp + 8]
lea edx, [ebx + 0x18]
nop dword [eax]
mov eax, dword [ecx + 4]
lea ecx, [ecx + 4]
mov dword [edx], eax
lea edx, [edx + 4]
sub edi, 1
jne 0x46ac90
mov ecx, dword [esi]
mov edx, 0x46a880
push ebx
push 0x46a850
mov ecx, dword [ecx + 8]
call fcn.004ae9f0
jmp 0x46af89
mov eax, dword [esi]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.00414800
mov eax, dword [esi]
or edx, 0xffffffff
push 0x60a838
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.0040fd20
mov eax, dword [esi]
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.00414cb0
mov eax, dword [esi]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.00414800
mov eax, dword [esi]
or edx, 0xffffffff
push 0x60a854
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.0040f5e0
mov eax, dword [esi]
add esp, 4
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x40]
mov eax, dword [ecx + 0x44]
sub eax, edx
mov dword [ebp - 0x30], edx
sar eax, 3
lea edi, [eax - 2]
mov dword [ebp - 0x34], edi
cmp edi, eax
jae 0x46b0c9
lea edi, [eax - 1]
cmp edi, eax
jae 0x46b0b8
mov eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x30]
mov ecx, dword [edx + eax*8]
mov edx, dword [edx + eax*8 + 4]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x34]
mov eax, dword [eax + edi*8]
mov dword [ebx + ecx*8], eax
mov eax, ebx
mov eax, dword [eax + edi*8 + 4]
mov dword [ebx + ecx*8 + 4], eax
mov eax, ebx
mov ecx, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x40]
mov dword [eax + edi*8 + 4], edx
mov edx, 0x60a85c
mov dword [eax + edi*8], ecx
mov eax, dword [esi]
lea edi, [edx + 1]
mov eax, dword [eax]
mov ecx, dword [eax]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x46ad80
sub edx, edi
push edx
mov edx, 0x60a85c
call fcn.00413880
mov eax, dword [ebp + 8]
add esp, 4
test eax, eax
jle 0x46ae95
mov dword [ebp - 0x34], ebx
lea edx, [ebp + 8]
mov eax, dword [esi]
add edx, 4
mov dword [ebp - 0x3c], edx
push 4
mov ecx, dword [eax]
mov edx, dword [edx]
mov ecx, dword [ecx]
call fcn.004673b0
mov eax, dword [esi]
add esp, 4
mov eax, dword [eax]
mov edi, dword [eax]
mov ecx, dword [edi + 0x44]
cmp ecx, dword [edi + 0x38]
jae 0x46b0a2
mov edx, dword [edi + 0x40]
mov eax, ecx
sub eax, edx
sar eax, 3
lea ebx, [eax - 1]
cmp ebx, eax
jae 0x46b08f
lea eax, [ecx + 8]
mov dword [edi + 0x44], eax
mov eax, dword [edx + ebx*8]
mov dword [ecx], eax
mov eax, dword [edx + ebx*8 + 4]
mov ebx, 0xfff8
mov dword [ecx + 4], eax
cmp word [ecx + 6], bx
jb 0x46ae09
mov eax, dword [ecx]
inc dword [eax + 4]
mov eax, dword [esi]
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x44]
cmp edx, dword [ecx + 0x38]
jae 0x46b07b
lea eax, [edx + 8]
mov dword [ecx + 0x44], eax
mov dword [edx + 4], 0xfff50000
mov edx, 0xfffffffe
mov eax, dword [esi]
push 0x60a86c
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.0040f8b0
mov eax, dword [esi]
add esp, 4
mov eax, dword [eax]
mov edi, dword [eax]
mov ecx, dword [edi + 0x44]
cmp ecx, dword [edi + 0x40]
je 0x46b065
add ecx, 0xfffffff8
mov dword [edi + 0x44], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
mov dword [ebp - 0x14], eax
mov eax, 0xfff3
mov word [ecx + 6], ax
cmp word [ebp - 0x12], bx
jb 0x46ae7f
add dword [edx + 4], 0xffffffff
jne 0x46ae7f
push edx
push edi
call fcn.004317b0
add esp, 8
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
inc ebx
mov dword [ebp - 0x34], ebx
cmp ebx, dword [ebp + 8]
jl 0x46ada8
mov ebx, dword [ebp - 0x40]
mov eax, dword [esi]
mov edx, dword [ebp + 8]
push 0
inc edx
mov eax, dword [eax]
mov ecx, dword [eax]
call fcn.0040e020
add esp, 4
test eax, eax
mov eax, dword [esi]
je 0x46aec5
mov eax, dword [eax]
push 0x6234ab
push dword [eax]
call fcn.00470ba0
add esp, 8
jmp 0x46af48
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x46af48
mov ecx, dword [ecx]
mov edx, eax
call fcn.00414800
mov eax, dword [esi]
or edx, 0xffffffff
push 0x60a890
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.0040fec0
add esp, 4
test eax, eax
je 0x46af3d
mov eax, dword [esi]
or edx, 0xffffffff
push 0x60a8ac
mov dword [ebp - 0x2c], 0
mov eax, dword [eax]
mov edi, dword [eax]
mov ecx, edi
call fcn.0040fec0
add esp, 4
test eax, eax
je 0x46af3d
push 0x60a8ac
or edx, 0xffffffff
mov ecx, edi
call fcn.0040f5e0
add esp, 4
or edx, 0xffffffff
mov ecx, edi
call fcn.00412f30
mov ecx, edi
mov dword [ebp - 0x2c], eax
call fcn.00414cb0
mov eax, dword [esi]
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.00414cb0
mov eax, dword [esi]
mov eax, dword [eax]
mov edi, dword [eax]
mov ecx, dword [edi + 0x44]
cmp ecx, dword [edi + 0x40]
je 0x46b065
add ecx, 0xfffffff8
mov dword [edi + 0x44], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
mov dword [ebp - 0x24], eax
mov eax, 0xfff3
mov word [ecx + 6], ax
mov eax, 0xfff8
cmp word [ebp - 0x22], ax
jb 0x46af8c
add dword [edx + 4], 0xffffffff
jne 0x46af8c
push edx
push edi
call fcn.004317b0
add esp, 8
mov edi, dword [ebp - 0x38]
mov eax, dword [0x6234ac]
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test ebx, ebx
je 0x46aff9
push 0xffffffffffffffff
push dword [ebx + 0xc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebx + 4]
test eax, eax
mov ecx, dword [ebp - 0x2c]
push dword [ebx + 0xc]
cmovne ecx, eax
mov dword [ebp - 0x2c], ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, ebx
call fcn.004ae5d0
test eax, eax
je 0x46aff9
cmp dword [ebx - 4], 0
jne 0x46aff9
cmp dword [ebx - 0xc], 0
jbe 0x46afe7
mov eax, dword [ebx - 0x10]
xorps xmm0, xmm0
movups xmmword [eax + ebx], xmm0
lea eax, [ebx - 0x10]
xorps xmm0, xmm0
push eax
movups xmmword [eax], xmm0
call fcn.0058bf82
add esp, 4
mov eax, dword [ebp - 0x44]
add esi, 4
inc eax
mov dword [ebp - 0x44], eax
cmp eax, edi
jl 0x46abc2
mov ebx, dword [ebp - 0x2c]
mov eax, ebx
lea esp, [ebp - 0x54]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00584a28
mov esp, ebp
pop ebp
ret
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
push 0x604640
push 0x300167f
mov edx, 0x604650
mov ecx, edi
call fcn.0040d110
push str.cannot_push_beyond_allocated_stack
push 0x300106c
mov edx, 0x6043c8
call fcn.0040d110
push 0xffffffffffffffff
push 0x178
mov edx, 0x603f5c
mov ecx, edi
call fcn.0040d170
push str.cannot_push_beyond_allocated_stack
push 0x3000445
mov edx, 0x603fdc
mov ecx, edi
call fcn.0040d110
push 0xffffffffffffffff
push 0x178
mov edx, 0x603f5c
call fcn.0040d170
push 0xfffffffffffffffe
push 0x178
mov edx, 0x603f5c
call fcn.0040d170
int3