Function at 0x51c000
Capabilities:
Create pipe
Create process on windows
Read file on windows
Read pipe

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6ae2f8
mov eax, dword fs:[0]
push eax
mov eax, 0xa904
call fcn.00666cc0
mov eax, dword [0x7e2670]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xa8b4], 0x44
push 0x40
push 0
lea eax, [ebp - 0xa8b0]
push eax
call fcn.006665c0
add esp, 0xc
mov byte [ebp - 0xa034], 0
push 0x9fff
push 0
lea ecx, [ebp - 0xa033]
push ecx
call fcn.006665c0
add esp, 0xc
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0xa034]
push eax
call fcn.00666ba0
add esp, 8
mov dword [ebp - 0xa038], 0
mov dword [ebp - 0x30], 0
push 0
push 0
lea ecx, [ebp - 0x30]
push ecx
lea edx, [ebp - 0xa038]
push edx
call dword [sym.imp.KERNEL32.dll_CreatePipe]
push 1
push 1
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_SetHandleInformation]
push 0x44
push 0
lea ecx, [ebp - 0xa8b4]
push ecx
call fcn.006665c0
add esp, 0xc
mov dword [ebp - 0xa888], 0x100
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0xa874], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xa878], eax
xor ecx, ecx
mov word [ebp - 0xa884], cx
push 0x10abc54
lea edx, [ebp - 0xa8b4]
push edx
push 0
push 0
push 0x8000000
push 1
push 0
push 0
lea eax, [ebp - 0xa034]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov dword [ebp - 0xa8bc], eax
cmp dword [ebp - 0xa8bc], 0
jne 0x51c14e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov edx, dword [ebp - 0xa038]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
jmp 0x51c549
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x10abc5c]
push eax
push 0x7589c4
call fcn.0066610b
add esp, 8
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
mov byte [ebp - 0xa844], 0
push 0x800
push 0
lea ecx, [ebp - 0xa843]
push ecx
call fcn.006665c0
add esp, 0xc
mov dword [ebp - 0xa868], 0
mov byte [ebp - 0xa845], 0
push str.Read_Pipe_r_n
call fcn.0066610b
add esp, 4
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
lea ecx, [ebp - 0xa864]
call fcn.004045c0
mov dword [ebp - 4], 0
mov byte [ebp - 0xa8b5], 1
mov dword [0x10abc78], 0
push 1
mov edx, dword [0x10abc54]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor ecx, ecx
cmp eax, 0x102
sete cl
mov byte [ebp - 0xa845], cl
push 0
lea edx, [ebp - 0xa868]
push edx
push 0
push 0
push 0
mov eax, dword [ebp - 0xa038]
push eax
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
movzx ecx, byte [ebp - 0xa845]
test ecx, ecx
jne 0x51c246
cmp dword [ebp - 0xa868], 0
ja 0x51c246
mov dword [ebp - 0xa908], 0
jmp 0x51c250
mov dword [ebp - 0xa908], 1
cmp dword [ebp - 0xa908], 0
je 0x51c4c7
push 0x7553a2
lea ecx, [ebp - 0xa8d8]
call fcn.00404630
mov byte [ebp - 4], 1
cmp dword [ebp - 0xa868], 0
jbe 0x51c329
mov edx, dword [ebp - 0xa868]
mov dword [ebp - 0xa8dc], edx
cmp dword [ebp - 0xa8dc], 0x800
jbe 0x51c2a0
mov dword [ebp - 0xa8dc], 0x800
push 0
lea eax, [ebp - 0xa8dc]
push eax
mov ecx, dword [ebp - 0xa8dc]
push ecx
lea edx, [ebp - 0xa844]
push edx
mov eax, dword [ebp - 0xa038]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp - 0xa8dc]
mov byte [ebp + ecx - 0xa844], 0
cmp dword [ebp - 0xa8dc], 0
jbe 0x51c300
lea edx, [ebp - 0xa844]
push edx
push 0x7589e4
call fcn.0066610b
add esp, 8
call fcn.006684b5
add eax, 0x20
push eax
call fcn.00668459
add esp, 4
lea eax, [ebp - 0xa844]
push eax
lea ecx, [ebp - 0xa8d8]
call fcn.004138a0
mov ecx, dword [ebp - 0xa868]
sub ecx, dword [ebp - 0xa8dc]
mov dword [ebp - 0xa868], ecx
jmp 0x51c271
lea ecx, [ebp - 0xa8d8]
call fcn.00405300
movzx edx, al
test edx, edx
je 0x51c343
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
movzx eax, byte [ebp - 0xa8b5]
test eax, eax
je 0x51c4b3
lea ecx, [ebp - 0xa8d8]
push ecx
lea ecx, [ebp - 0xa864]
call fcn.00477970
push 0
push str.Loading_file
lea ecx, [ebp - 0xa864]
call fcn.004138c0
cmp dword [0x6c2cb8], eax
je 0x51c4b3
mov byte [ebp - 0xa8b5], 0
push 0
push 0x7589f8
lea ecx, [ebp - 0xa864]
call fcn.004138c0
mov dword [ebp - 0xa8e0], eax
mov edx, dword [0x6c2cb8]
cmp edx, dword [ebp - 0xa8e0]
je 0x51c4b3
lea ecx, [ebp - 0xa864]
call fcn.00407790
mov esi, eax
push 0x758a08
call fcn.00666cf0
add esp, 4
sub esi, eax
push esi
push str.subprocessid
call fcn.00666cf0
add esp, 4
add eax, dword [ebp - 0xa8e0]
push eax
lea eax, [ebp - 0xa8fc]
push eax
lea ecx, [ebp - 0xa8d8]
call fcn.004129f0
mov byte [ebp - 4], 2
push 0
push 0x758a28
lea ecx, [ebp - 0xa8fc]
call fcn.004138c0
push eax
push 0
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0xa8fc]
call fcn.004129f0
mov dword [ebp - 0xa90c], eax
mov edx, dword [ebp - 0xa90c]
mov dword [ebp - 0xa910], edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xa910]
push eax
lea ecx, [ebp - 0xa8fc]
call fcn.00404740
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2c]
call fcn.00404770
lea ecx, [ebp - 0xa8fc]
call fcn.00404810
push eax
call fcn.00666b8d
add esp, 4
mov dword [0x10abc78], eax
mov ecx, dword [0x10abc78]
push ecx
push 1
push 0x1fffff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0xa900], eax
mov edx, dword [ebp - 0xa900]
mov dword [0x10abc78], edx
mov eax, dword [0x10abc78]
push eax
push str.g_hA60APHandle_d_r_n
call fcn.0066610b
add esp, 8
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa8fc]
call fcn.00404770
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa8d8]
call fcn.00404770
jmp 0x51c1eb
push 0x758a40
call fcn.0066610b
add esp, 4
push 0xffffffffffffffff
mov ecx, dword [0x10abc54]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [0x10abc54]
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov dword [ebp - 0xa8bc], eax
mov ecx, dword [0x10abc58]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x10abc54]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push ecx
push str.ExecuteCmd_return__d_r_n
call fcn.0066610b
add esp, 8
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [ebp - 0xa904], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa864]
call fcn.00404770
mov eax, dword [ebp - 0xa904]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006665ac
mov esp, ebp
pop ebp
ret