Function at 0x428e70
Capabilities:
Create process on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x418
mov eax, dword [0x5256a8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x388], ecx
mov ecx, dword [ebp + 0x14]
push eax
mov dword [ebp - 0x38c], eax
mov dword [ebp - 0x390], ecx
mov dword [ebp - 0x370], 0
call fcn.0040c957
mov edx, dword [ebp - 0x388]
mov esi, eax
mov eax, dword [edx + 0x2c]
add esp, 4
cmp eax, esi
je 0x428ed8
push eax
call fcn.00402cee
mov eax, dword [ebp - 0x388]
add esp, 4
mov dword [eax + 0x2c], esi
push ebx
call fcn.0040c957
add esp, 4
mov dword [ebp - 0x370], eax
test edi, edi
je 0x428efc
push edi
call fcn.0040c957
add esp, 4
mov dword [ebp - 0x36c], eax
jmp 0x428f06
mov dword [ebp - 0x36c], 0
mov eax, dword [0x528178]
mov dword [ebp - 0x374], 0x40c
test eax, eax
je 0x428f28
cmp byte [eax + 0x48], 0
je 0x428f28
mov byte [ebp - 0x365], 1
jmp 0x428f43
mov byte [ebp - 0x365], 0
call fcn.004074d0
cmp eax, 5
jge 0x428f43
mov dword [ebp - 0x374], 0x100040c
push 0x40
lea ecx, [ebp - 0x3d0]
push 0
mov esi, 0x44
push ecx
mov dword [ebp - 0x3d4], esi
call fcn.004b7120
add esp, 0xc
test edi, edi
je 0x428f71
mov edx, dword [ebp - 0x36c]
mov dword [ebp - 0x3cc], edx
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov dword [ebp - 0x418], esi
push 0x40
xor esi, esi
lea eax, [ebp - 0x414]
push esi
push eax
call fcn.004b7120
add esp, 0xc
lea ecx, [ebp - 0x418]
push ecx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
test byte [ebp - 0x3ec], 1
je 0x429116
or dword [ebp - 0x3a8], 1
mov eax, str.type
mov dword [ebp - 0x28], 0xf
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0x3c], 0
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x428fd0
sub eax, ecx
push eax
push str.type
lea ecx, [ebp - 0x3c]
call fcn.00407740
xor edx, edx
mov eax, ebx
mov word [ebp - 0x20], dx
mov dword [ebp - 0xc], 7
mov dword [ebp - 0x10], esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x429000
sub eax, edx
sar eax, 1
push eax
push ebx
lea ecx, [ebp - 0x20]
call fcn.00406030
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x20]
push edx
lea eax, [ebp - 0x98]
push eax
call fcn.0044dcd0
add esp, 8
mov ecx, eax
call fcn.00407840
mov ecx, str.compute_only_renderer
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x429043
sub ecx, esi
mov esi, dword [eax + 0x10]
mov edi, ecx
mov ecx, esi
cmp ecx, esi
jae 0x429057
mov ecx, esi
cmp esi, edi
jb 0x42905f
mov ecx, edi
cmp dword [eax + 0x14], 0x10
jb 0x429067
mov eax, dword [eax]
push ecx
push str.compute_only_renderer
push eax
call fcn.00407fb0
add esp, 0xc
test eax, eax
jne 0x42908c
cmp esi, edi
jae 0x429083
or eax, 0xffffffff
jmp 0x42908a
xor eax, eax
cmp esi, edi
setne al
test eax, eax
mov esi, 0x10
sete bl
cmp dword [ebp - 0x44], esi
jb 0x4290a5
mov ecx, dword [ebp - 0x58]
push ecx
call fcn.00406cf9
add esp, 4
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x58], 0
call fcn.0042f340
cmp dword [ebp - 0xc], 8
jb 0x4290d4
mov edx, dword [ebp - 0x20]
push edx
call fcn.00406cf9
add esp, 4
xor eax, eax
mov dword [ebp - 0xc], 7
mov dword [ebp - 0x10], 0
mov word [ebp - 0x20], ax
cmp dword [ebp - 0x28], esi
jb 0x4290f9
mov ecx, dword [ebp - 0x3c]
push ecx
call fcn.00406cf9
add esp, 4
test bl, bl
je 0x429108
xor edx, edx
mov word [ebp - 0x3a4], dx
jmp 0x429116
mov ax, word [ebp - 0x3e8]
mov word [ebp - 0x3a4], ax
xor edi, edi
cmp byte [0x527124], 0
je 0x429136
mov eax, dword [0x527128]
test eax, eax
je 0x429136
or dword [ebp - 0x374], 0x400
mov edi, eax
lea ecx, [ebp - 0x384]
call fcn.00412cd0
mov ebx, dword [ebp - 0x388]
mov esi, dword [ebx + 0x10]
lea ecx, [ebp - 0x384]
call fcn.00426a60
mov edx, dword [ebp - 0x374]
push eax
mov eax, dword [ebp - 0x38c]
lea ecx, [ebp - 0x3d4]
push ecx
push 0
push edi
mov edi, dword [ebp - 0x370]
push edx
push 0
push 0
push 0
push edi
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_CreateProcessAsUserW]
test eax, eax
jne 0x4291d6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea ecx, [ebp - 0x384]
call fcn.00429650
push 0
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov eax, dword [ebp - 0x36c]
test eax, eax
je 0x4291b4
push eax
call fcn.00402cee
add esp, 4
test edi, edi
je 0x4291c1
push edi
call fcn.00402cee
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401306
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebx + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x429203
cmp eax, 0xffffffff
je 0x429203
call fcn.00416220
mov eax, dword [ebx + 0x10]
push eax
call esi
test eax, eax
jne 0x4291fc
call fcn.00430d70
mov dword [ebx + 0x10], 0
mov ecx, dword [ebp - 0x384]
push ecx
call fcn.00429390
add esp, 4
cmp byte [ebp - 0x365], 0
jne 0x42924c
mov edx, dword [ebp - 0x384]
mov eax, dword [ebx + 0x1c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
test eax, eax
jne 0x42924c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x384]
push 0
push ecx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
jmp 0x42918e
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 0x380]
push eax
lea eax, [ebp - 0x370]
push eax
mov dword [ebp - 0x370], edx
call dword [sym.imp.ADVAPI32.dll_SetThreadToken]
test eax, eax
jne 0x429289
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x384]
push 0
push ecx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
jmp 0x42918e
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x4292b0
cmp eax, 0xffffffff
je 0x4292b0
call fcn.00416220
mov eax, dword [ebx + 0x14]
push eax
call esi
test eax, eax
jne 0x4292a9
call fcn.00430d70
mov dword [ebx + 0x14], 0
mov eax, dword [ebp - 0x380]
lea edx, [ebp - 0x364]
push edx
push eax
mov dword [ebp - 0x364], 0x1003f
call dword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
jne 0x4292ee
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x384]
push 0
push ecx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
jmp 0x42918e
mov ecx, dword [ebp - 0x390]
mov esi, dword [ebp - 0x2b4]
lea edx, [ebp - 0x384]
push edx
call fcn.00429430
test al, al
jne 0x429326
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [ebp - 0x384]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
jmp 0x42918e
mov ecx, dword [ebp - 0x38c]
push esi
push ecx
call fcn.004295a0
add esp, 8
lea edx, [ebp - 0x384]
push edx
mov ecx, ebx
mov dword [ebx + 0x28], eax
call fcn.00429600
lea ecx, [ebp - 0x384]
call fcn.00429650
push 0
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov eax, dword [ebp - 0x36c]
test eax, eax
je 0x42936d
push eax
call fcn.00402cee
add esp, 4
test edi, edi
je 0x42937a
push edi
call fcn.00402cee
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00401306
mov esp, ebp
pop ebp
ret 0x10