Function at 0x4ba5f0
Capabilities:
Terminate process

Disassembly:
sub esp, 0x3c
mov eax, dword [0x6009e4]
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.0058d200
mov edi, eax
add esp, 4
mov dword [esp + 0x1c], edi
test edi, edi
je 0x4baca9
push 0x58
push 0
push edi
call fcn.005869c0
add esp, 0xc
mov dword [edi + 0xc], 1
push 4
call fcn.0058d200
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x4bacea
mov eax, dword [edi + 0xc]
shl eax, 2
push eax
call fcn.0058d200
add esp, 4
mov dword [edi + 4], eax
test eax, eax
je 0x4bad2b
mov eax, dword [edi + 0xc]
shl eax, 2
push eax
call fcn.0058d200
add esp, 4
mov dword [edi + 8], eax
test eax, eax
je 0x4bad6c
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.0058d200
mov esi, eax
add esp, 4
test esi, esi
je 0x4badad
push 0x158
push 0
push esi
call fcn.005869c0
lea ecx, [edi + 0x48]
mov dword [esi + 0x134], 0x20
add esp, 0xc
test ecx, ecx
je 0x4ba6eb
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 0x4ba71d
push 5
push dword [esp + 0x18]
push 0x61ec1c
call fcn.00592b16
add esp, 0xc
test eax, eax
jne 0x4ba71d
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], 0x4053c0
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 0x4ba7a3
mov eax, dword [edi + 8]
cmp dword [eax + esi*4], 2
jne 0x4ba79d
mov eax, dword [edi + 4]
push dword [eax + esi*4]
call fcn.0058d200
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4badee
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 0x4ba757
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 0x4ba922
lea edx, [ebx + 8]
test eax, eax
jle 0x4ba82c
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.004affa0
add esp, 0x10
test eax, eax
je 0x4ba823
inc ebx
mov edx, 8
cmp ebx, dword [ebp + 0x30]
jl 0x4ba7d0
mov edi, dword [esp + 0x1c]
mov edx, 8
mov ecx, dword [ebp + 0x30]
cmp ebx, ecx
jne 0x4ba969
or eax, 0xffffffff
mov dword [esp + 0x14], 0xffffffff
xor ebx, ebx
mov dword [esp + 0x10], eax
test ecx, ecx
jle 0x4ba8d9
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.004affa0
add esp, 0x10
test eax, eax
je 0x4bae2f
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4bae2f
mov eax, dword [eax + 0xc4]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp ecx, 0xffffffff
je 0x4ba8c1
cmp eax, ecx
jge 0x4ba8c9
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
inc ebx
cmp ebx, dword [ebp + 0x30]
jge 0x4ba8d9
mov edx, 8
jmp 0x4ba850
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 0x4ba96d
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 0x4ba96d
mov esi, dword [esp + 0x10]
mov ecx, dword [ebp + 0x24]
lea edx, [esp + 0x2c]
push 0
push esi
call fcn.004affa0
add esp, 8
test eax, eax
je 0x4bab1e
mov eax, dword [eax + 0x14]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4bab1e
mov eax, dword [edi + 0x48]
mov ebx, dword [esp + 0x1c]
mov dword [eax], ebx
mov esi, dword [ebx + 0xc4]
mov ecx, esi
cmp dword [esi + 0xc], 0
jne 0x4baae8
call fcn.004b2df0
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 0x4ba9d2
mov dword [ecx + 8], eax
cmp dword [esi + 0xc], 0
mov dword [esi + 0x10], eax
jne 0x4ba9de
mov dword [esi + 0xc], eax
inc dword [esi + 4]
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x4ba9e9
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.004affa0
mov esi, eax
add esp, 8
test esi, esi
je 0x4baa2f
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov dword [edx], ecx
mov ecx, dword [esi]
test ecx, ecx
je 0x4baa1b
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
push dword [esi + 0xc]
call fcn.0058bf82
add esp, 4
push esi
call fcn.0058bf82
add esp, 4
mov ecx, dword [ebp + 0x34]
mov edx, ebx
call fcn.004b2870
cmp dword [ebx + 0x98], 0
jne 0x4baa63
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x4baa52
cmp dword [eax + 0x2c], 0xffffffff
jne 0x4baa63
mov esi, dword [ebp + 0x2c]
mov ecx, esi
call fcn.004b2df0
mov dword [eax], ebx
jmp 0x4bac2e
cmp dword [ebx + 0xc8], 0
je 0x4bac5f
cmp dword [ebx + 0x8c], 0
jne 0x4bac5f
xor esi, esi
cmp dword [edi + 0xc], esi
jle 0x4baaa9
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 + 0xc8]
call fcn.004aa1b0
inc esi
add esp, 0x18
cmp esi, dword [edi + 0xc]
jl 0x4baa84
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x4bac5f
mov ecx, dword [eax + 0x14]
test ecx, ecx
jle 0x4baad4
mov edx, dword [eax + 0x18]
test edx, edx
je 0x4baad4
mov eax, dword [ebx + 0xc8]
mov dword [eax + 0x1248], ecx
mov dword [eax + 0x124c], edx
push ebx
push dword [ebx + 0xc8]
call fcn.004b9900
add esp, 8
jmp 0x4bac5f
call fcn.004b2df0
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 0x4bab09
mov dword [ecx + 8], eax
cmp dword [esi + 0xc], 0
mov dword [esi + 0x10], eax
jne 0x4bac5c
mov dword [esi + 0xc], eax
jmp 0x4bac5c
push 0x124
call fcn.0058d200
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
je 0x4bae70
mov eax, dword [edi + 0x48]
push 0x124
push 0
push esi
mov dword [eax], esi
call fcn.005869c0
add esp, 0xc
mov dword [esi + 0x60], ebp
lea eax, [esp + 0x24]
mov dword [esi + 0x68], 0xffffffff
xor edx, edx
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [edx + 0x18]
call fcn.004ae770
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 + 0xc4], 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 + 0xec], ebx
mov ebx, dword [esi + 0xc4]
mov ecx, ebx
call fcn.004b2df0
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 0x4babe9
mov dword [ecx + 8], eax
cmp dword [ebx + 0xc], 0
mov dword [ebx + 0x10], eax
jne 0x4babf5
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.004affa0
add esp, 8
test eax, eax
je 0x4bac15
mov dword [eax + 0x14], esi
cmp dword [esi + 0x98], 0
jne 0x4bac5f
mov esi, dword [ebp + 0x2c]
mov ecx, esi
call fcn.004b2df0
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 0x4bac48
mov dword [ecx + 8], eax
cmp dword [esi + 0xc], 0
mov dword [esi + 0x10], eax
jne 0x4bac54
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 0x4bac90
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x4bac83
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push esi
push eax
push 0x4aee50
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.00584a28
add esp, 0x3c
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xa4a
mov edx, 0x61ea8c
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0xa4a
push 0x61eaac
push 0x61eacc
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xa4e
mov edx, 0x61eaf0
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0xa4e
push 0x61eb10
push 0x61eb30
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xa4f
mov edx, 0x61eb54
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0xa4f
push 0x61eb74
push 0x61eb94
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xa50
mov edx, 0x61ebb8
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0xa50
push 0x61ebd8
push 0x61ebf8
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x4c4
mov edx, 0x61c4e8
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0x4c4
push 0x61c504
push 0x61c520
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xa78
mov edx, 0x61ec24
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0xa78
push 0x61ec44
push 0x61ec64
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfd
push 0xa9b
mov edx, 0x61ec88
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0xa9b
push 0x61eca8
push 0x61ecc8
call fcn.004010e0
add esp, 0xc
push 0xfd
call fcn.00587d2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0xae3
mov edx, 0x61ecec
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0xae3
push 0x61ed0c
push 0x61ed2c
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
int3