Function at 0x476a26
Capabilities:
Terminate process

Disassembly:
sub esp, 0x30
mov eax, dword [0x6b0d44]
xor eax, esp
mov dword [esp + 0x2c], eax
and dword [esp + 0xc], 0
xor eax, eax
push ebx
push ebp
mov ebp, dword [esp + 0x3c]
mov ebx, ecx
push esi
push edi
push 0xa5f
xor esi, esi
mov dword [esp + 0x18], edx
push 0x763ba0
inc esi
mov dword [esp + 0x18], eax
push esi
push 0x58
call fcn.005ce020
mov edi, eax
add esp, 0x10
mov dword [esp + 0x20], edi
test edi, edi
je 0x476fbb
push 0x58
push 0
push edi
call fcn.0059de40
push 0xa63
push 0x763c24
push esi
push 4
mov dword [edi + 0xc], esi
call fcn.005ce020
add esp, 0x1c
mov dword [edi], eax
test eax, eax
jne 0x476aca
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edi, 0xa63
push esi
push edi
mov edx, 0x763c44
xor ecx, ecx
call fcn.0047145c
push edi
push 0x763c64
push 0x763c84
jmp 0x476fe5
mov eax, dword [edi + 0xc]
push 0xa64
push 0x763ca8
shl eax, 2
push esi
push eax
call fcn.005ce020
add esp, 0x10
mov dword [edi + 4], eax
test eax, eax
jne 0x476b1a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edi, 0xa64
push esi
push edi
mov edx, 0x763cc8
xor ecx, ecx
call fcn.0047145c
push edi
push 0x763ce8
push 0x763d08
jmp 0x476fe5
mov eax, dword [edi + 0xc]
push 0xa65
push 0x763d2c
shl eax, 2
push esi
push eax
call fcn.005ce020
add esp, 0x10
mov dword [edi + 8], eax
test eax, eax
jne 0x476b6a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edi, 0xa65
push esi
push edi
mov edx, 0x763d4c
xor ecx, ecx
call fcn.0047145c
push edi
push 0x763d6c
push 0x763d8c
jmp 0x476fe5
mov eax, dword [edi]
mov ecx, 0x134
mov esi, dword [esp + 0x48]
push 0
mov dword [eax], ebp
mov eax, dword [edi + 4]
mov dword [eax], esi
mov eax, dword [edi + 8]
and dword [eax], 0
lea eax, [edi + 0x48]
push eax
push 0x20
pop edx
mov dword [esp + 0x20], eax
call fcn.0046c097
mov eax, dword [edi + 0x48]
pop ecx
pop ecx
mov dword [eax + 0x14], edi
mov ecx, dword [edi + 0x48]
mov eax, dword [ebx + 0x38]
mov dword [ecx + 4], eax
cmp esi, 5
jle 0x476bc5
push 5
push ebp
push 0x763db0
call fcn.005e4560
add esp, 0xc
test eax, eax
jne 0x476bc5
mov dword [edi + 0x50], 1
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x14]
and dword [edi + 0x38], 0
push 0x10
mov dword [edi + 0x34], eax
pop eax
push 0x1c
pop edx
push 0x17
pop ebp
mov dword [edi + 0x54], 0x404771
cmp word [ecx], bp
cmove eax, edx
push eax
push ecx
lea ecx, [edi + 0x18]
call section..text
xor esi, esi
pop ecx
pop ecx
cmp dword [edi + 0xc], esi
jle 0x476c51
mov eax, dword [edi + 8]
cmp dword [eax + esi*4], 2
jne 0x476c4b
mov eax, dword [edi + 4]
push 0xa8d
push 0x763db8
push 1
push dword [eax + esi*4]
call fcn.005ce020
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x476cf7
mov eax, dword [edi + 4]
mov ecx, ebp
mov edx, dword [eax + esi*4]
mov eax, dword [edi]
push edx
push dword [eax + esi*4]
call section..text
mov eax, dword [edi]
pop ecx
pop ecx
mov dword [eax + esi*4], ebp
mov eax, dword [edi + 8]
and dword [eax + esi*4], 0
inc esi
cmp esi, dword [edi + 0xc]
jl 0x476bfd
push 0xffffffffffffffff
push dword [ebx + 0x40]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor ebp, ebp
cmp dword [ebx + 0x34], 1
jle 0x476d84
cmp ebp, dword [ebx + 0x34]
jge 0x476ca8
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x24]
mov edx, ebp
push eax
mov ecx, esi
call fcn.00474509
mov ecx, dword [ebx + 0x28]
lea edx, [esp + 0x28]
mov edi, eax
push 0
push edi
mov dword [esp + 0x1c], edi
call fcn.0046d8d3
add esp, 0xc
test eax, eax
je 0x476ca1
inc ebp
cmp ebp, dword [ebx + 0x34]
jl 0x476c71
mov edi, dword [esp + 0x20]
cmp ebp, dword [ebx + 0x34]
jne 0x476d8d
or eax, 0xffffffff
xor ebp, ebp
or esi, eax
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x34], ebp
jle 0x476d35
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x24]
push eax
mov edx, ebp
call fcn.00474509
mov ecx, dword [ebx + 0x28]
lea edx, [esp + 0x28]
push eax
call fcn.0046daa8
pop ecx
pop ecx
test eax, eax
je 0x476d4c
mov eax, dword [eax + 0xc8]
cmp esi, 0xffffffff
jne 0x476d26
mov esi, dword [eax + 4]
mov eax, ebp
mov dword [esp + 0x10], eax
jmp 0x476d2f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edi, 0xa8d
push esi
push edi
mov edx, 0x763dd8
xor ecx, ecx
call fcn.0047145c
push edi
push 0x763df8
push 0x763e18
jmp 0x476fe5
cmp dword [eax + 4], esi
jl 0x476cec
mov eax, dword [esp + 0x10]
inc ebp
cmp ebp, dword [ebx + 0x34]
jl 0x476cbe
lea ecx, [esp + 0x24]
mov edx, eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00474509
pop ecx
mov dword [esp + 0x10], eax
jmp 0x476d91
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edi, 0xfd
mov esi, 0xab0
push edi
push esi
mov edx, 0x763e3c
xor ecx, ecx
call fcn.0047145c
push esi
push 0x763e5c
push 0x763e7c
call fcn.004010b4
add esp, 0x18
push edi
jmp 0x476fee
lea eax, [esp + 0x24]
xor edx, edx
push eax
jmp 0x476d3c
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x28]
lea edx, [esp + 0x24]
push eax
call fcn.0046daa8
mov esi, eax
pop ecx
test esi, esi
je 0x476eb1
lea ebp, [edi + 0x48]
mov edx, edi
mov ecx, dword [ebp]
mov dword [ecx], esi
mov ecx, dword [esi + 0xc8]
cmp dword [ecx + 0xc], 0
jne 0x476ea7
call fcn.00470071
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x476dd0
dec eax
mov ecx, dword [ebx + 0x2c]
lea edx, [esp + 0x24]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x10]
push eax
call fcn.0046daee
pop ecx
mov ecx, dword [ebx + 0x38]
mov edx, esi
call fcn.0046fb73
xor edx, edx
cmp dword [esi + 0x9c], edx
jne 0x476e23
mov ecx, dword [esi + 0xcc]
test ecx, ecx
je 0x476e0c
call fcn.00469c24
test eax, eax
je 0x476e23
mov ecx, dword [ebx + 0x30]
mov edx, esi
call fcn.00470071
mov dword [esp + 0x1c], 1
jmp 0x476f89
cmp dword [esi + 0xcc], edx
je 0x476f89
cmp dword [esi + 0x90], edx
jne 0x476f89
mov ebp, edx
cmp dword [edi + 0xc], edx
jle 0x476e69
mov eax, dword [edi + 4]
push 1
push dword [eax + ebp*4]
mov eax, dword [edi]
push dword [eax + ebp*4]
push 1
push edx
push dword [esi + 0xcc]
call fcn.00467d91
add esp, 0x18
inc ebp
push 0
pop edx
cmp ebp, dword [edi + 0xc]
jl 0x476e42
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x476f85
mov ecx, dword [eax + 0x14]
test ecx, ecx
jle 0x476e94
mov edx, dword [eax + 0x18]
test edx, edx
je 0x476e94
mov eax, dword [esi + 0xcc]
mov dword [eax + 0x1248], ecx
mov dword [eax + 0x124c], edx
push esi
push dword [esi + 0xcc]
call fcn.00476007
pop ecx
pop ecx
jmp 0x476f85
call fcn.00470071
jmp 0x476f89
push 0xaf8
push 0x763ea0
push 1
push 0x128
call fcn.005ce020
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x476eff
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edi, 0xaf8
push esi
push edi
mov edx, 0x763ec0
xor ecx, ecx
call fcn.0047145c
push edi
push 0x763ee0
push 0x763f00
jmp 0x476fe5
mov eax, dword [edi + 0x48]
push 0x128
push 0
push esi
mov dword [eax], esi
call fcn.0059de40
or dword [esi + 0x6c], 0xffffffff
xor ecx, ecx
mov dword [esi + 0x60], ebx
call fcn.0046febf
push 0x17
pop ecx
mov dword [esi + 0xc8], eax
mov eax, dword [esp + 0x20]
push 0x10
cmp word [eax], cx
pop ecx
push 0x1c
pop edx
cmove ecx, edx
push ecx
push eax
lea ecx, [esi + 0x28]
call section..text
mov ecx, dword [esi + 0xc8]
mov edx, edi
mov dword [esi + 0xf0], ebp
call fcn.00470071
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x38]
mov ecx, dword [ebx + 0x28]
push esi
push eax
call fcn.0046da6f
add esp, 0x1c
cmp dword [esi + 0x9c], 0
jne 0x476f85
mov ecx, dword [ebx + 0x30]
mov edx, esi
call fcn.00470071
mov dword [esp + 0x1c], 1
mov ebp, dword [esp + 0x18]
push 0
push 1
push dword [ebx + 0x40]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
cmp dword [esp + 0x1c], 0
je 0x476fa5
mov ecx, dword [ebx + 0xc]
call fcn.0046c589
mov eax, dword [ebp]
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0059b3f0
add esp, 0x30
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edi, 0xa5f
push esi
push edi
mov edx, 0x763bc0
xor ecx, ecx
call fcn.0047145c
push edi
push 0x763be0
push 0x763c00
call fcn.004010b4
add esp, 0x18
push esi
call fcn.005aae60
int3