Function at 0x457160
Capabilities:
Terminate process

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, ecx
mov ebx, edx
push edi
mov eax, dword [esi + 0x44]
cmp eax, dword [esi + 0x38]
jae 0x45760a
mov edx, 0x8004080
call fcn.00432100
mov ecx, dword [esi + 0x44]
xor edx, edx
or edx, 0xfff90000
mov dword [ecx], eax
mov dword [ecx + 4], edx
inc dword [eax + 4]
add dword [esi + 0x44], 8
mov ecx, dword [esi + 0x70]
mov dword [eax + 0x14], ecx
test ecx, ecx
je 0x4571a5
inc dword [ecx + 4]
mov ecx, str.childProcess.subProcess
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4571b0
sub ecx, edx
mov edx, str.childProcess.subProcess
push ecx
mov ecx, esi
call fcn.00413880
add esp, 4
mov edx, 0xfffffffe
mov ecx, esi
push 0x60707c
call fcn.0040f8b0
mov ecx, dword [esi + 0x44]
add esp, 4
cmp ecx, dword [esi + 0x38]
jae 0x45761e
lea eax, [ecx + 8]
mov edx, 0xfffffffe
mov dword [esi + 0x44], eax
xor eax, eax
or eax, 0xfff60000
mov dword [ecx], ebx
mov dword [ecx + 4], eax
mov ecx, esi
push 0x607088
call fcn.0040f8b0
mov eax, dword [esi + 0x44]
add esp, 4
cmp eax, dword [esi + 0x38]
jae 0x457634
mov ecx, dword [esi + 0x2c]
lea eax, [esp + 0x14]
push eax
push 0
mov edx, 0x30
call fcn.0042f6e0
mov edx, eax
add esp, 8
test edx, edx
je 0x45764a
mov eax, dword [esi + 0x44]
xor ecx, ecx
mov edi, dword [esp + 0x14]
or ecx, 0xfffa0000
mov dword [eax], edx
mov dword [eax + 4], ecx
inc dword [edx + 4]
add dword [esi + 0x44], 8
test edi, edi
je 0x457660
push 0x30
push 0
push edi
call fcn.005869c0
add esp, 0xc
mov dword [edi], 0x20
mov dword [edi + 4], 0
mov edx, 0xfffffffe
mov eax, dword [0x61c4d0]
mov ecx, esi
mov dword [edi + 8], eax
mov dword [edi + 0xc], 2
add edi, 0x10
push 0x6070a0
call fcn.0040f8b0
mov dword [edi], esi
add esp, 4
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x40]
sub eax, ecx
sar eax, 3
lea edx, [eax - 1]
cmp edx, eax
jae 0x4572ba
lea eax, [ecx + edx*8]
test eax, eax
jne 0x4572bf
mov eax, 0x5ed574
mov ecx, 0xfff8
cmp word [eax + 6], cx
jae 0x4572ce
xor eax, eax
jmp 0x4572d0
mov eax, dword [eax]
mov ecx, esi
mov dword [edi + 4], eax
mov dword [edi + 0xc], ebx
call fcn.00470e90
mov dword [edi + 8], eax
test ebx, ebx
je 0x4572e9
mov edx, dword [ebx + 0x10]
jmp 0x4572eb
xor edx, edx
mov ecx, dword [esi + 0x44]
cmp ecx, dword [esi + 0x38]
jae 0x4576a1
movd xmm0, edx
lea eax, [ecx + 8]
cvtdq2pd xmm0, xmm0
mov dword [esi + 0x44], eax
mov edx, 0x6070b8
movsd qword [ecx], xmm0
mov ecx, esi
call fcn.004710e0
mov ecx, esi
call fcn.0045f800
mov ebp, eax
mov edx, 0x6070bc
mov ecx, ebp
mov dword [esp + 0x14], ebp
call fcn.004606c0
mov edx, 0x6070c4
mov ecx, ebp
call fcn.004606c0
push 0x4570b0
push 0x6070cc
mov ecx, esi
call fcn.0045e1e0
push 6
push 0x18075380
push 0
mov edx, 0x456ee0
mov ecx, esi
call fcn.004142f0
add esp, 0x14
mov edx, 0xfffffffe
mov ecx, esi
push 0x6070d0
call fcn.0040f8b0
add esp, 4
cmp dword [ebx + 0x20], 0
jne 0x4573af
cmp dword [ebx + 0x18], 0
jne 0x4573af
cmp dword [ebx + 0x1c], 0
jne 0x4573af
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x457600
push eax
mov edx, 0x607194
mov ecx, ebp
call fcn.0045e300
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov ecx, esi
call fcn.00413fd0
mov ecx, str.childProcess.subProcess.stdout
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4573c0
sub ecx, edx
mov edx, str.childProcess.subProcess.stdout
push ecx
mov ecx, esi
call fcn.00413880
add esp, 4
mov edx, 0xfffffffe
mov ecx, esi
push 0x6070f8
call fcn.0040f8b0
mov ecx, dword [esi + 0x44]
add esp, 4
cmp ecx, dword [esi + 0x38]
jae 0x4576b7
mov edx, dword [esi + 0x40]
mov eax, ecx
sub eax, edx
sar eax, 3
lea ebp, [eax - 2]
cmp ebp, eax
jae 0x4576cd
lea eax, [ecx + 8]
mov dword [esi + 0x44], eax
mov eax, dword [edx + ebp*8]
mov dword [ecx], eax
mov eax, dword [edx + ebp*8 + 4]
mov dword [ecx + 4], eax
mov eax, 0xfff8
cmp word [ecx + 6], ax
jb 0x457430
mov eax, dword [ecx]
inc dword [eax + 4]
mov edx, 0x607104
mov ecx, esi
call fcn.004710e0
push edi
push 0
push 0x456b50
mov edx, 0x456b30
mov ecx, esi
call fcn.0049a3a0
add esp, 0xc
mov dword [edi + 0x10], eax
mov edx, 0x60710c
mov ecx, esi
call fcn.004710e0
mov ecx, esi
call fcn.00413fd0
mov ecx, str.childProcess.subProcess.stderr
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x457471
sub ecx, edx
mov edx, str.childProcess.subProcess.stderr
push ecx
mov ecx, esi
call fcn.00413880
add esp, 4
mov edx, 0xfffffffe
mov ecx, esi
push 0x607134
call fcn.0040f8b0
mov ecx, dword [esi + 0x44]
add esp, 4
cmp ecx, dword [esi + 0x38]
jae 0x4576b7
mov edx, dword [esi + 0x40]
mov eax, ecx
sub eax, edx
sar eax, 3
lea ebp, [eax - 2]
cmp ebp, eax
jae 0x4576cd
lea eax, [ecx + 8]
mov dword [esi + 0x44], eax
mov eax, dword [edx + ebp*8]
mov dword [ecx], eax
mov eax, dword [edx + ebp*8 + 4]
mov dword [ecx + 4], eax
mov eax, 0xfff8
cmp word [ecx + 6], ax
jb 0x4574e1
mov eax, dword [ecx]
inc dword [eax + 4]
mov edx, 0x607140
mov ecx, esi
call fcn.004710e0
push edi
push 0
push 0x456be0
mov edx, 0x456bc0
mov ecx, esi
call fcn.0049a3a0
add esp, 0xc
mov dword [edi + 0x14], eax
mov edx, 0x607148
mov ecx, esi
call fcn.004710e0
mov ecx, esi
call fcn.00413fd0
mov ecx, str.childProcess.subProcess.stdin
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x457522
sub ecx, edx
mov edx, str.childProcess.subProcess.stdin
push ecx
mov ecx, esi
call fcn.00413880
add esp, 4
mov edx, 0xfffffffe
mov ecx, esi
push 0x607170
call fcn.0040f8b0
mov ecx, dword [esi + 0x44]
add esp, 4
cmp ecx, dword [esi + 0x38]
jae 0x4576b7
mov edx, dword [esi + 0x40]
mov eax, ecx
sub eax, edx
sar eax, 3
lea ebp, [eax - 2]
cmp ebp, eax
jae 0x4576cd
lea eax, [ecx + 8]
mov dword [esi + 0x44], eax
mov eax, dword [edx + ebp*8]
mov dword [ecx], eax
mov eax, dword [edx + ebp*8 + 4]
mov dword [ecx + 4], eax
mov eax, 0xfff8
cmp word [ecx + 6], ax
jb 0x457592
mov eax, dword [ecx]
inc dword [eax + 4]
mov edx, 0x60717c
mov ecx, esi
call fcn.004710e0
push edi
push fcn.00403e30
mov edx, 0x456c50
mov ecx, esi
call fcn.004a9490
add esp, 8
mov dword [edi + 0x18], eax
mov edx, 0x607184
mov ecx, esi
call fcn.004710e0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4575dc
mov ecx, dword [esp + 0x14]
mov edx, 0x60718c
push eax
call fcn.0045e300
add esp, 4
push edi
push 0x456ec0
push 0x456e90
push 0x456e60
push 0x456c90
mov edx, 0x1000
mov ecx, ebx
call fcn.004b6720
add esp, 0x14
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
push str.cannot_push_beyond_allocated_stack
push 0x30011fc
mov edx, 0x6044c0
call fcn.0040d110
push str.cannot_push_beyond_allocated_stack
push 0x30010f5
mov edx, 0x604448
mov ecx, esi
call fcn.0040d110
push str.cannot_push_beyond_allocated_stack
push 0x3001475
mov edx, 0x6045c0
mov ecx, esi
call fcn.0040d110
push str.alloc_failed
push 0x100147e
mov edx, 0x6045f0
mov ecx, esi
call fcn.0040d110
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x46d
mov edx, 0x61c474
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0x46d
push 0x61c490
push 0x61c4ac
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
push str.cannot_push_beyond_allocated_stack
push 0x3001094
mov edx, 0x6043e8
mov ecx, esi
call fcn.0040d110
push str.cannot_push_beyond_allocated_stack
push 0x3000445
mov edx, 0x603fdc
mov ecx, esi
call fcn.0040d110
push 0xfffffffffffffffe
push 0x178
mov edx, 0x603f5c
mov ecx, esi
call fcn.0040d170
int3