Function at 0x403af0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50ea18
mov eax, dword fs:[0]
push eax
sub esp, 0xf4
mov eax, dword [0x5635b8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
push 0x20
xor eax, eax
mov ebx, 7
xor esi, esi
push str.CWinMain::WaitForProcessGroup__
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x54], esi
mov word [ebp - 0x64], ax
call fcn.00402c30
xor ecx, ecx
mov dword [ebp - 4], esi
mov byte [ebp - 0xd5], 0
mov byte [ebp - 0xd6], 0
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], esi
mov word [ebp - 0x2c], cx
mov byte [ebp - 4], 1
call fcn.00405210
test al, al
jne 0x403ebb
push esi
push esi
mov dword [ebp - 0xf0], 1
mov dword [ebp - 0xe0], esi
call dword [sym.imp.KERNEL32.dll_CreateJobObjectW]
mov ebx, eax
mov dword [ebp - 0xdc], ebx
cmp ebx, esi
je 0x403ea0
push 0x70
lea edx, [ebp - 0xd4]
push esi
push edx
call fcn.004f9330
mov esi, dword [sym.imp.KERNEL32.dll_SetInformationJobObject]
add esp, 0xc
push 0x70
lea eax, [ebp - 0xd4]
push eax
push 9
push ebx
mov dword [ebp - 0xc4], 0x800
call esi
push 0
push 0
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
mov dword [ebp - 0xe4], eax
test eax, eax
je 0x403e5f
push 8
lea ecx, [ebp - 0xf8]
push ecx
push 7
push ebx
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], eax
call esi
test eax, eax
je 0x403e44
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
test eax, eax
je 0x403e11
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ebx, dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
jmp 0x403c30
cmp dword [ebp - 0xe0], 4
je 0x403d1d
push str.EACore_GameInstallComplete
push 0
push 0
push 0
call edi
mov edx, dword [0x564aa8]
push 0
mov esi, eax
push 0
lea eax, [ebp - 0xec]
push eax
push 2
mov dword [ebp - 0xec], edx
mov dword [ebp - 0xe8], esi
call ebx
test eax, eax
je 0x403d12
cmp eax, 1
je 0x403d12
push 0x32
lea ecx, [ebp - 0xfc]
push ecx
mov ecx, dword [ebp - 0xe4]
lea edx, [ebp - 0x100]
push edx
lea eax, [ebp - 0xe0]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetQueuedCompletionStatus]
test eax, eax
jne 0x403cbc
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor edx, edx
cmp eax, 0x102
sete dl
mov dword [ebp - 0xf0], edx
cmp dword [ebp - 0xf0], 0
jne 0x403c30
cmp dword [ebp - 0xe0], 4
je 0x403d1d
mov byte [ebp - 0xd5], 0
mov ebx, dword [ebp - 0xdc]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xd
push 0x51d3c8
lea ecx, [ebp - 0x2c]
mov esi, eax
call fcn.00402b10
push esi
push 1
lea ecx, [ebp - 0x2c]
call fcn.00402910
push 1
push 0x51d3c4
lea ecx, [ebp - 0x2c]
call fcn.00402b10
jmp 0x403d7b
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov bl, 1
jmp 0x403d23
mov bl, byte [ebp - 0xd6]
push str.Synchronization_Complete.
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x48]
push ecx
mov byte [ebp - 0xd5], 1
call fcn.00403490
add esp, 0xc
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 6
call fcn.00402d80
cmp dword [ebp - 0x34], 8
mov byte [ebp - 4], 1
jb 0x403d62
mov edx, dword [ebp - 0x48]
push edx
call fcn.00405287
add esp, 4
test bl, bl
je 0x403d75
push 0x13
push str._Signaled_to_leave.
lea ecx, [ebp - 0x2c]
call fcn.00402b10
mov ebx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x2c]
mov esi, 8
cmp dword [ebp - 0x18], esi
jae 0x403d8b
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
call fcn.00405210
test al, al
jne 0x403db7
mov eax, dword [ebp - 0xe4]
test eax, eax
je 0x403dac
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x403db7
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x18], esi
jb 0x403dc8
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00405287
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], 0
mov word [ebp - 0x2c], cx
cmp dword [ebp - 0x50], esi
jb 0x403ded
mov edx, dword [ebp - 0x64]
push edx
call fcn.00405287
add esp, 4
mov al, byte [ebp - 0xd5]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004f931e
mov esp, ebp
pop ebp
ret 4
push str.Error:_Could_not_assign_the_process_group_root_to_the_job.
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x48]
push ecx
call fcn.00403490
add esp, 0xc
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402d80
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 1
call fcn.00401ea0
jmp 0x403cdf
push str.Error:_Could_not_assign_the_IO_completion_port_to_the_job.
lea edx, [ebp - 0x64]
push edx
lea eax, [ebp - 0x48]
push eax
call fcn.00403490
add esp, 0xc
mov byte [ebp - 4], 3
jmp 0x403e2a
push str.Error:_Could_not_create_an_IO_completion_port.
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0x48]
push edx
call fcn.00403490
add esp, 0xc
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402d80
cmp dword [ebp - 0x34], 8
mov byte [ebp - 4], 1
jb 0x403cdf
mov eax, dword [ebp - 0x48]
push eax
call fcn.00405287
add esp, 4
jmp 0x403cdf
push str.Error:_Could_not_create_a_job.
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0x48]
push edx
call fcn.00403490
add esp, 0xc
mov byte [ebp - 4], 5
jmp 0x403e78
push str.EACore_GameInstallComplete
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ecx, dword [0x564aa8]
push 0
push 0
lea edx, [ebp - 0xec]
push edx
mov esi, eax
push 2
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xe8], esi
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
test eax, eax
je 0x403efd
cmp eax, 1
jne 0x403cd9
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x403cd9