Function at 0x46b920
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x6019e4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x62b12c]
push ebx
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
push esi
push edi
test eax, eax
jne 0x46b955
lea esp, [ebp - 0x54]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005852a8
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x62b12c]
mov dword [ebp - 0x38], ebx
mov esi, dword [eax + 4]
mov edi, dword [eax + 0xc]
lea eax, [esi*4 + 0x24]
call fcn.00585a60
mov ecx, esp
lea edx, [esi*4]
push 1
push 4
call fcn.004aec40
mov esi, eax
add esp, 8
lea eax, [esi + 4]
mov dword [esi], eax
test edi, edi
je 0x46b9b3
xor ecx, ecx
test edi, edi
je 0x46b9a3
mov eax, dword [edi]
jmp 0x46b9a5
xor eax, eax
mov dword [esi + ecx*4], eax
inc ecx
mov edi, dword [edi + 8]
test edi, edi
jne 0x46b99f
mov dword [ebp - 0x38], ecx
mov eax, dword [0x62b12c]
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 0x46be27
mov eax, dword [0x62b12c]
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.004aed40
test eax, eax
je 0x46bda8
mov eax, dword [esi]
mov edi, dword [eax + 8]
cmp dword [edi + 8], ebx
je 0x46baca
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [edi + 8], eax
je 0x46baca
mov edi, dword [ebp + 8]
lea eax, [edi*4 + 0x28]
push eax
call fcn.0058db11
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x46be3d
lea ecx, [edi*4 + 0x28]
push ecx
push 0
push ebx
call fcn.00587250
lea eax, [edi*4 + 0x18]
mov dword [ebx + 4], 0
mov dword [ebx], eax
add esp, 0xc
mov eax, dword [0x624130]
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 0x46bab0
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 0x46baa0
mov ecx, dword [esi]
mov edx, 0x46b690
push ebx
push 0x46b660
mov ecx, dword [ecx + 8]
call fcn.004af160
jmp 0x46bda2
mov eax, dword [esi]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.00415060
mov eax, dword [esi]
or edx, 0xffffffff
push 0x60beb8
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.00410580
mov eax, dword [esi]
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.00415510
mov eax, dword [esi]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.00415060
mov eax, dword [esi]
or edx, 0xffffffff
push 0x60bed4
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.0040fe40
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 0x46bee2
lea edi, [eax - 1]
cmp edi, eax
jae 0x46bed1
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, 0x60bedc
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 0x46bb90
sub edx, edi
push edx
mov edx, 0x60bedc
call fcn.004140e0
mov eax, dword [ebp + 8]
add esp, 4
test eax, eax
jle 0x46bca5
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.00468130
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 0x46bebb
mov edx, dword [edi + 0x40]
mov eax, ecx
sub eax, edx
sar eax, 3
lea ebx, [eax - 1]
cmp ebx, eax
jae 0x46bea8
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 0x46bc19
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 0x46be94
lea eax, [edx + 8]
mov dword [ecx + 0x44], eax
mov dword [edx + 4], 0xfff50000
mov edx, 0xfffffffe
mov eax, dword [esi]
push 0x60beec
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.00410110
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 0x46be7e
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 0x46bc8f
add dword [edx + 4], 0xffffffff
jne 0x46bc8f
push edx
push edi
call fcn.00432010
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 0x46bbb8
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.0040e880
add esp, 4
test eax, eax
mov eax, dword [esi]
je 0x46bcde
mov eax, dword [eax]
mov eax, dword [eax]
test eax, eax
je 0x46bd61
push 0x62b12b
push eax
call fcn.00471950
add esp, 8
jmp 0x46bd61
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x46bd61
mov ecx, dword [ecx]
mov edx, eax
call fcn.00415060
mov eax, dword [esi]
or edx, 0xffffffff
push 0x60bf10
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.00410720
add esp, 4
test eax, eax
je 0x46bd56
mov eax, dword [esi]
or edx, 0xffffffff
push 0x60bf2c
mov dword [ebp - 0x2c], 0
mov eax, dword [eax]
mov edi, dword [eax]
mov ecx, edi
call fcn.00410720
add esp, 4
test eax, eax
je 0x46bd56
push 0x60bf2c
or edx, 0xffffffff
mov ecx, edi
call fcn.0040fe40
add esp, 4
or edx, 0xffffffff
mov ecx, edi
call fcn.00413790
mov ecx, edi
mov dword [ebp - 0x2c], eax
call fcn.00415510
mov eax, dword [esi]
mov ecx, dword [eax]
mov ecx, dword [ecx]
call fcn.00415510
mov eax, dword [esi]
mov eax, dword [eax]
mov edi, dword [eax]
mov ecx, dword [edi + 0x44]
cmp ecx, dword [edi + 0x40]
je 0x46be7e
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 0x46bda5
add dword [edx + 4], 0xffffffff
jne 0x46bda5
push edx
push edi
call fcn.00432010
add esp, 8
mov edi, dword [ebp - 0x38]
mov eax, dword [0x62b12c]
push 0
push 1
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
test ebx, ebx
je 0x46be12
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.004aed40
test eax, eax
je 0x46be12
cmp dword [ebx - 4], 0
jne 0x46be12
cmp dword [ebx - 0xc], 0
jbe 0x46be00
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.0058c812
add esp, 4
mov eax, dword [ebp - 0x44]
add esi, 4
inc eax
mov dword [ebp - 0x44], eax
cmp eax, edi
jl 0x46b9d2
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.005852a8
mov esp, ebp
pop ebp
ret
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
push 0x605c78
push 0x300167f
mov edx, 0x605c88
mov ecx, edi
call fcn.0040d970
push str.cannot_push_beyond_allocated_stack
push 0x300106c
mov edx, 0x605a00
call fcn.0040d970
push 0xffffffffffffffff
push 0x178
mov edx, 0x605594
mov ecx, edi
call fcn.0040d9d0
push str.cannot_push_beyond_allocated_stack
push 0x3000445
mov edx, 0x605614
mov ecx, edi
call fcn.0040d970
push 0xffffffffffffffff
push 0x178
mov edx, 0x605594
call fcn.0040d9d0
push 0xfffffffffffffffe
push 0x178
mov edx, 0x605594
call fcn.0040d9d0
int3