Function at 0x4bae90
Capabilities:
Terminate process

Disassembly:
sub esp, 0x3c
mov eax, dword [0x6019e4]
xor eax, esp
mov dword [esp + 0x34], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x4c]
mov ebx, edx
push edi
xor eax, eax
mov dword [esp + 0x18], ebx
push 0x58
mov ebp, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], eax
call fcn.0058db11
mov edi, eax
add esp, 4
mov dword [esp + 0x1c], edi
test edi, edi
je 0x4bb549
push 0x58
push 0
push edi
call fcn.00587250
add esp, 0xc
mov dword [edi + 0xc], 1
push 4
call fcn.0058db11
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x4bb58a
mov eax, dword [edi + 0xc]
shl eax, 2
push eax
call fcn.0058db11
add esp, 4
mov dword [edi + 4], eax
test eax, eax
je 0x4bb5cb
mov eax, dword [edi + 0xc]
shl eax, 2
push eax
call fcn.0058db11
add esp, 4
mov dword [edi + 8], eax
test eax, eax
je 0x4bb60c
mov eax, dword [edi]
mov ecx, dword [esp + 0x54]
push 0x158
mov dword [eax], esi
mov eax, dword [edi + 4]
mov dword [eax], ecx
mov eax, dword [edi + 8]
mov dword [eax], 0
lea eax, [edi + 0x48]
mov dword [esp + 0x2c], eax
call fcn.0058db11
mov esi, eax
add esp, 4
test esi, esi
je 0x4bb64d
push 0x158
push 0
push esi
call fcn.00587250
lea ecx, [edi + 0x48]
mov dword [esi + 0x134], 0x20
add esp, 0xc
test ecx, ecx
je 0x4baf8b
mov dword [ecx], esi
cmp dword [esp + 0x54], 5
mov eax, dword [ecx]
mov dword [eax + 0x14], edi
mov ecx, dword [ecx]
mov eax, dword [ebp + 0x34]
mov dword [ecx + 4], eax
jle 0x4bafbd
push 5
push dword [esp + 0x18]
push 0x626894
call fcn.00593426
add esp, 0xc
test eax, eax
jne 0x4bafbd
mov dword [edi + 0x50], 1
mov eax, dword [esp + 0x70]
lea ecx, [edi + 0x18]
mov dword [edi + 0x34], eax
mov edx, 0x1c
mov dword [edi + 0x54], 0x405630
mov eax, 0x10
mov dword [edi + 0x38], 0
cmp word [ebx], 0x17
cmove eax, edx
push eax
push ebx
call fcn.00401000
xor esi, esi
add esp, 8
cmp dword [edi + 0xc], esi
jle 0x4bb043
mov eax, dword [edi + 8]
cmp dword [eax + esi*4], 2
jne 0x4bb03d
mov eax, dword [edi + 4]
push dword [eax + esi*4]
call fcn.0058db11
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4bb68e
mov ecx, dword [edi + 4]
mov edx, dword [ecx + esi*4]
mov ecx, dword [edi]
push edx
push dword [ecx + esi*4]
mov ecx, ebx
call fcn.00401000
mov eax, dword [edi]
add esp, 8
mov dword [eax + esi*4], ebx
mov eax, dword [edi + 8]
mov dword [eax + esi*4], 0
inc esi
cmp esi, dword [edi + 0xc]
jl 0x4baff7
push 0xffffffffffffffff
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebp + 0x30]
xor ebx, ebx
cmp eax, 1
jle 0x4bb1c2
lea edx, [ebx + 8]
test eax, eax
jle 0x4bb0cc
mov esi, dword [esp + 0x18]
nop word [eax + eax]
cmp word [esi], 2
lea ecx, [esp + 0x2c]
mov edi, 0x18
cmove edi, edx
push edi
push esi
mov edx, edi
mov dword [esp + 0x18], edi
call fcn.00401000
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x34]
xor ecx, ecx
mov word [esp + 0x34], bx
cmp word [esi], 0x17
push ecx
cmove eax, ecx
mov ecx, dword [ebp + 0x24]
push edi
mov dword [esp + 0x40], eax
call fcn.004b0710
add esp, 0x10
test eax, eax
je 0x4bb0c3
inc ebx
mov edx, 8
cmp ebx, dword [ebp + 0x30]
jl 0x4bb070
mov edi, dword [esp + 0x1c]
mov edx, 8
mov ecx, dword [ebp + 0x30]
cmp ebx, ecx
jne 0x4bb209
or eax, 0xffffffff
mov dword [esp + 0x14], 0xffffffff
xor ebx, ebx
mov dword [esp + 0x10], eax
test ecx, ecx
jle 0x4bb179
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x2c]
mov esi, 0x18
cmp word [eax], 2
cmove esi, edx
push esi
push eax
mov edx, esi
call fcn.00401000
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x38]
push edx
push esi
cmp word [ecx], 0x17
mov ecx, dword [ebp + 0x24]
cmove eax, edx
mov word [esp + 0x3c], bx
lea edx, [esp + 0x3c]
mov dword [esp + 0x40], eax
call fcn.004b0710
add esp, 0x10
test eax, eax
je 0x4bb6cf
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4bb6cf
mov eax, dword [eax + 0xc8]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp ecx, 0xffffffff
je 0x4bb161
cmp eax, ecx
jge 0x4bb169
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
inc ebx
cmp ebx, dword [ebp + 0x30]
jge 0x4bb179
mov edx, 8
jmp 0x4bb0f0
mov eax, dword [esp + 0x18]
mov ecx, 8
mov esi, 0x18
cmp word [eax], 2
cmove esi, ecx
lea ecx, [esp + 0x2c]
push esi
push eax
mov edx, esi
mov dword [esp + 0x18], esi
call fcn.00401000
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x1c]
add esp, 8
mov word [esp + 0x2c], ax
mov eax, dword [esp + 0x30]
cmp word [ecx], 0x17
cmove eax, edx
mov dword [esp + 0x30], eax
jmp 0x4bb20d
mov eax, dword [esp + 0x18]
mov ecx, 8
mov esi, 0x18
cmp word [eax], 2
cmove esi, ecx
lea ecx, [esp + 0x2c]
push esi
push eax
mov edx, esi
mov dword [esp + 0x18], esi
call fcn.00401000
mov ecx, dword [esp + 0x20]
xor eax, eax
xor edx, edx
mov word [esp + 0x34], ax
mov eax, dword [esp + 0x38]
add esp, 8
cmp word [ecx], 0x17
cmove eax, edx
mov dword [esp + 0x30], eax
jmp 0x4bb20d
mov esi, dword [esp + 0x10]
mov ecx, dword [ebp + 0x24]
lea edx, [esp + 0x2c]
push 0
push esi
call fcn.004b0710
add esp, 8
test eax, eax
je 0x4bb3be
mov eax, dword [eax + 0x14]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4bb3be
mov eax, dword [edi + 0x48]
mov ebx, dword [esp + 0x1c]
mov dword [eax], ebx
mov esi, dword [ebx + 0xc8]
mov ecx, esi
cmp dword [esi + 0xc], 0
jne 0x4bb388
call fcn.004b3590
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], 0
mov ecx, dword [esi + 0x10]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4bb272
mov dword [ecx + 8], eax
cmp dword [esi + 0xc], 0
mov dword [esi + 0x10], eax
jne 0x4bb27e
mov dword [esi + 0xc], eax
inc dword [esi + 4]
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x4bb289
dec eax
mov ecx, dword [ebp + 0x28]
lea edx, [esp + 0x2c]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x10]
push 0
push eax
call fcn.004b0710
mov esi, eax
add esp, 8
test esi, esi
je 0x4bb2cf
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov dword [edx], ecx
mov ecx, dword [esi]
test ecx, ecx
je 0x4bb2bb
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
push dword [esi + 0xc]
call fcn.0058c812
add esp, 4
push esi
call fcn.0058c812
add esp, 4
mov ecx, dword [ebp + 0x34]
mov edx, ebx
call fcn.004b3010
cmp dword [ebx + 0x9c], 0
jne 0x4bb303
mov eax, dword [ebx + 0xcc]
test eax, eax
je 0x4bb2f2
cmp dword [eax + 0x2c], 0xffffffff
jne 0x4bb303
mov esi, dword [ebp + 0x2c]
mov ecx, esi
call fcn.004b3590
mov dword [eax], ebx
jmp 0x4bb4ce
cmp dword [ebx + 0xcc], 0
je 0x4bb4ff
cmp dword [ebx + 0x90], 0
jne 0x4bb4ff
xor esi, esi
cmp dword [edi + 0xc], esi
jle 0x4bb349
mov eax, dword [edi + 4]
push 1
push dword [eax + esi*4]
mov eax, dword [edi]
push dword [eax + esi*4]
push 1
push 0
push dword [ebx + 0xcc]
call fcn.004aa920
inc esi
add esp, 0x18
cmp esi, dword [edi + 0xc]
jl 0x4bb324
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x4bb4ff
mov ecx, dword [eax + 0x14]
test ecx, ecx
jle 0x4bb374
mov edx, dword [eax + 0x18]
test edx, edx
je 0x4bb374
mov eax, dword [ebx + 0xcc]
mov dword [eax + 0x1248], ecx
mov dword [eax + 0x124c], edx
push ebx
push dword [ebx + 0xcc]
call fcn.004ba170
add esp, 8
jmp 0x4bb4ff
call fcn.004b3590
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], 0
mov ecx, dword [esi + 0x10]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4bb3a9
mov dword [ecx + 8], eax
cmp dword [esi + 0xc], 0
mov dword [esi + 0x10], eax
jne 0x4bb4fc
mov dword [esi + 0xc], eax
jmp 0x4bb4fc
push 0x128
call fcn.0058db11
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x4bb710
mov eax, dword [edi + 0x48]
push 0x128
push 0
push esi
mov dword [eax], esi
call fcn.00587250
add esp, 0xc
mov dword [esi + 0x60], ebp
lea eax, [esp + 0x24]
mov dword [esi + 0x6c], 0xffffffff
xor edx, edx
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [edx + 0x18]
call fcn.004aeee0
mov esi, dword [esp + 0x24]
add esp, 8
mov eax, dword [esp + 0x24]
push 0
push 0x40
push 1
push 0
mov dword [esi + 0x14], eax
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov ecx, dword [esp + 0x14]
mov edx, 0x1c
mov dword [esi], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 0xc8], esi
mov ecx, 0x10
mov esi, dword [esp + 0x14]
cmp word [eax], 0x17
cmove ecx, edx
push ecx
push eax
lea ecx, [esi + 0x28]
call fcn.00401000
add esp, 8
mov dword [esi + 0xf0], ebx
mov ebx, dword [esi + 0xc8]
mov ecx, ebx
call fcn.004b3590
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [eax + 8], 0
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4bb489
mov dword [ecx + 8], eax
cmp dword [ebx + 0xc], 0
mov dword [ebx + 0x10], eax
jne 0x4bb495
mov dword [ebx + 0xc], eax
inc dword [ebx + 4]
lea edx, [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x24]
push 1
push eax
call fcn.004b0710
add esp, 8
test eax, eax
je 0x4bb4b5
mov dword [eax + 0x14], esi
cmp dword [esi + 0x9c], 0
jne 0x4bb4ff
mov esi, dword [ebp + 0x2c]
mov ecx, esi
call fcn.004b3590
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 8], 0
mov ecx, dword [esi + 0x10]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4bb4e8
mov dword [ecx + 8], eax
cmp dword [esi + 0xc], 0
mov dword [esi + 0x10], eax
jne 0x4bb4f4
mov dword [esi + 0xc], eax
mov dword [esp + 0x20], 1
inc dword [esi + 4]
push 0
push 1
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
cmp dword [esp + 0x20], 0
je 0x4bb530
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x4bb523
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push esi
push eax
push 0x4af5c0
call dword [sym.imp.KERNEL32.dll_QueueUserAPC]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
pop edi
pop esi
mov eax, dword [eax]
pop ebp
pop ebx
xor ecx, esp
call fcn.005852a8
add esp, 0x3c
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xa4d
mov edx, 0x626704
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0xa4d
push 0x626724
push 0x626744
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.005885bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xa51
mov edx, 0x626768
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0xa51
push 0x626788
push 0x6267a8
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.005885bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xa52
mov edx, 0x6267cc
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0xa52
push 0x6267ec
push 0x62680c
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.005885bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xa53
mov edx, 0x626830
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0xa53
push 0x626850
push 0x626870
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.005885bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x4c4
mov edx, 0x624148
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0x4c4
push 0x624164
push 0x624180
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.005885bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xa7b
mov edx, 0x62689c
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0xa7b
push 0x6268bc
push 0x6268dc
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.005885bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfd
push 0xa9e
mov edx, 0x626900
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0xa9e
push 0x626920
push 0x626940
call fcn.004010e0
add esp, 0xc
push 0xfd
call fcn.005885bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xae6
mov edx, 0x626964
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0xae6
push 0x626984
push 0x6269a4
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.005885bd
int3