Function at 0x403b20
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50e7b0
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 0x29
xor eax, eax
mov ebx, 7
xor esi, esi
push str.Win32ProcessUtils::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 dword [ebp - 0xe8], 1
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], esi
mov word [ebp - 0x2c], cx
push esi
push esi
mov byte [ebp - 4], 1
mov byte [ebp - 0xd5], cl
call dword [sym.imp.KERNEL32.dll_CreateJobObjectW]
mov ebx, eax
mov dword [ebp - 0xdc], ebx
cmp ebx, esi
je 0x403f0c
push 0x70
lea edx, [ebp - 0xd4]
push esi
push edx
call fcn.004f9100
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 0x403ecb
push 8
lea ecx, [ebp - 0xf0]
push ecx
push 7
push ebx
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], eax
call esi
test eax, eax
je 0x403e8a
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
test eax, eax
je 0x403e57
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ebx, dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov byte [ebp - 0xd6], 0
lea esp, [esp]
cmp dword [ebp - 0xe0], 4
je 0x403e03
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 - 0xf8]
push eax
push 2
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xf4], esi
call ebx
test eax, eax
je 0x403df5
cmp eax, 1
je 0x403df5
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 0x403cdc
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor edx, edx
cmp eax, 0x102
sete dl
mov dword [ebp - 0xe8], edx
cmp dword [ebp - 0xe8], 0
jne 0x403c50
cmp dword [ebp - 0xe0], 4
je 0x403e03
push str.Error:_The_IO_completion_ports_queue_was_unexpectedly_destroyed.
lea edx, [ebp - 0x64]
push edx
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 0xd5], 0
call fcn.004034c0
add esp, 0xc
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 3
call fcn.00402db0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 1
call fcn.00401ea0
mov ebx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe4]
test eax, eax
je 0x403d42
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x403d4d
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov bl, byte [ebp - 0xd5]
test bl, bl
jne 0x403d88
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xd
push 0x51d3a8
lea ecx, [ebp - 0x2c]
mov esi, eax
call fcn.00402b10
push esi
push 1
lea ecx, [ebp - 0x2c]
call fcn.00402910
push 1
push 0x51d3a4
lea ecx, [ebp - 0x2c]
call fcn.00402b10
mov eax, dword [ebp - 0x2c]
mov esi, 8
cmp dword [ebp - 0x18], esi
jae 0x403d98
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x18], esi
jb 0x403db0
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00405060
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 0x403dd5
mov edx, dword [ebp - 0x64]
push edx
call fcn.00405060
add esp, 4
mov al, bl
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.004f90ee
mov esp, ebp
pop ebp
ret 4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0xd6], 1
push str.Synchronization_Complete.
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x48]
push ecx
mov byte [ebp - 0xd5], 1
call fcn.004034c0
add esp, 0xc
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00402db0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 1
call fcn.00401ea0
cmp byte [ebp - 0xd6], 0
je 0x403d2b
push str._Signaled_to_leave.
lea ecx, [ebp - 0x2c]
call fcn.00402d80
jmp 0x403d2b
push str.Error:_Could_not_assign_the_process_group_root_to_the_job.
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0x48]
push edx
call fcn.004034c0
add esp, 0xc
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.00402db0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 1
call fcn.00401ea0
jmp 0x403d31
push str.Error:_Could_not_assign_the_IO_completion_port_to_the_job.
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x48]
push ecx
call fcn.004034c0
add esp, 0xc
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402db0
cmp dword [ebp - 0x34], 8
mov byte [ebp - 4], 1
jb 0x403d31
mov edx, dword [ebp - 0x48]
push edx
call fcn.00405060
add esp, 4
jmp 0x403d31
push str.Error:_Could_not_create_an_IO_completion_port.
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x48]
push ecx
call fcn.004034c0
add esp, 0xc
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 6
call fcn.00402db0
cmp dword [ebp - 0x34], 8
mov byte [ebp - 4], 1
jb 0x403d42
mov edx, dword [ebp - 0x48]
push edx
call fcn.00405060
add esp, 4
jmp 0x403d42
push str.Error:_Could_not_create_a_job.
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x48]
push ecx
call fcn.004034c0
add esp, 0xc
mov byte [ebp - 4], 7
jmp 0x403ea3