Function at 0x40e3d9
Capabilities:
Delete file

Disassembly:
cmp dword [0x4311ec], 0
jne 0x40e3ec
cmp dword [0x431160], 0
jne 0x40e3ec
ret
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
cmp dword [ebp + 0xc], 0
jne 0x40ea90
mov eax, dword [0x431288]
test eax, eax
je 0x40e40e
dec eax
mov dword [0x431288], eax
mov edi, dword [0x4311ec]
xor ebx, ebx
xor edx, edx
test edi, edi
je 0x40e4c0
mov al, byte [edi + 0x30]
mov ecx, eax
and eax, 1
or ebx, eax
mov eax, dword [edi + 0x2c]
and ecx, 1
test eax, eax
jns 0x40e44c
xor eax, eax
mov ebx, edi
mov dword [ebp - 0x28], 0x7f
mov edi, edx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
jmp 0x40e749
test byte [0x43154c], 4
je 0x40e4b6
test cl, cl
mov edx, 0x42b6b8
mov dword [esp + 8], eax
mov esi, str.__remote_
mov dword [esp + 4], 0x42b91d
cmove esi, edx
mov dword [esp], 0x431220
call fcn.0040c726
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0x431220
mov eax, dword [edi + 0x18]
mov eax, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], str.Live_child__p___s__PID__s__s_n
mov dword [esp + 8], eax
call fcn.0040c6f6
mov dword [esp], 1
call dword [0x428f14]
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov edx, edi
mov edi, dword [edi + 0x14]
jmp 0x40e418
test ebx, ebx
je 0x40e4fe
xor eax, eax
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x20]
mov dword [esp + 8], eax
lea eax, [ebp - 0x24]
mov dword [esp + 4], eax
lea eax, [ebp - 0x28]
mov dword [esp], eax
call fcn.0041efb1
mov ecx, 1
test eax, eax
jg 0x40e676
je 0x40e4fe
mov dword [esp], str.remote_status
call fcn.0041253e
xor eax, eax
cmp dword [0x4311f0], 0
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
jne 0x40e5c5
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
xor esi, esi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [esp + 0x18], 2
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0x4311f0
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
sub esp, 0x1c
test eax, eax
jne 0x40e592
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], eax
mov ebx, eax
call fcn.0041ef04
mov dword [esp], 2
mov esi, eax
call dword [0x428f14]
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Determine_main_thread_ID__Error__ld:__s__n
mov dword [esp], eax
call fcn.0040c6d5
jmp 0x40e5c5
test byte [0x43154c], 2
je 0x40e5c5
mov eax, dword [0x4311f0]
mov dword [esp], str.Main_thread_handle___p_n
mov dword [esp + 4], eax
call fcn.0040c6f6
mov dword [esp], 1
call dword [0x428f14]
mov dword [esp], eax
call sub.msvcrt.dll_fflush
lea eax, [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0041e9cb
mov ebx, eax
test eax, eax
je 0x40e653
mov dword [esp], eax
call fcn.0041dfad
mov dword [esp], ebx
mov esi, eax
call fcn.0041dfc2
lea edx, [eax - 1]
mov dword [ebp - 0x28], eax
cmp edx, 0x270e
ja 0x40e639
test esi, esi
je 0x40e639
mov dword [esp], eax
call fcn.0041ef04
mov edx, dword [ebp - 0x28]
mov esi, eax
mov dword [ebp - 0x2c], edx
mov dword [esp], 2
call dword [0x428f14]
mov dword [esp + 0xc], esi
mov edx, dword [ebp - 0x2c]
mov dword [esp + 4], str.make__e_d_:__s_n
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.0040c6d5
mov dword [esp], ebx
call fcn.0041df9b
mov dword [ebp - 0x24], eax
mov dword [esp], ebx
call fcn.0041e9f3
xor ecx, ecx
mov dword [ebp - 0x20], ecx
jmp 0x40e672
mov eax, dword [ebp - 0x1c]
cmp eax, 0xffffffff
jne 0x40e667
mov dword [esp], str.WaitForMultipleObjects
call fcn.0041253e
cmp eax, 0x102
je 0x40eadd
mov eax, ebx
xor ecx, ecx
inc dword [0x428e24]
test ecx, ecx
jne 0x40e69f
cmp dword [0x431160], eax
jne 0x40e69f
mov eax, dword [ebp - 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call fcn.00408d42
jmp 0x40eadd
mov ebx, dword [0x4311ec]
test ebx, ebx
je 0x40ea74
cmp dword [ebx + 0x2c], eax
jne 0x40e6c1
mov dl, byte [ebx + 0x30]
mov esi, edx
and edx, 1
and esi, 1
cmp edx, ecx
je 0x40e6c8
mov edi, ebx
mov ebx, dword [ebx + 0x14]
jmp 0x40e6a5
test byte [0x43154c], 4
je 0x40e73a
mov dword [esp + 8], eax
mov ecx, esi
mov edx, str.__remote_
mov esi, 0x42b6b8
mov dword [esp + 4], 0x42b91d
test cl, cl
mov dword [esp], 0x431220
cmovne esi, edx
call fcn.0040c726
mov eax, dword [ebp - 0x24]
mov edx, str.Reaping_winning_child__p_PID__s__s_n
or eax, dword [ebp - 0x28]
mov eax, str.Reaping_losing_child__p_PID__s__s_n
mov dword [esp + 0xc], esi
cmove eax, edx
mov dword [esp + 8], 0x431220
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0040c6f6
mov dword [esp], 1
call dword [0x428f14]
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [0x4311e4]
test eax, eax
je 0x40e749
dec eax
mov dword [0x4311e4], eax
cmp dword [ebp - 0x24], 0
mov esi, 2
jne 0x40e77c
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x40e77c
cmp esi, 1
jne 0x40e777
cmp dword [0x431538], 0
je 0x40e777
test byte [ebx + 0x30], 0x10
mov eax, 2
cmove esi, eax
jmp 0x40e77c
mov esi, 2
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x40e81f
test byte [0x43154c], 4
je 0x40e7b5
mov dword [esp + 4], eax
mov dword [esp], str.Cleaning_up_temp_batch_file__s_n
call fcn.0040c6f6
mov dword [esp], 1
call dword [0x428f14]
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov edx, dword [sym.imp.msvcrt.dll__errno]
mov dword [ebp - 0x2c], edx
call edx
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call sub.msvcrt.dll_remove
test eax, eax
je 0x40e80f
test byte [0x43154c], 4
mov edx, dword [ebp - 0x2c]
je 0x40e80f
call edx
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], str.Cleaning_up_temp_batch_file__s_failed___d__n
mov dword [esp + 4], eax
call fcn.0040c6f6
mov dword [esp], 1
call dword [0x428f14]
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call fcn.004254f4
xor ecx, ecx
mov dword [ebx + 0x1c], ecx
mov al, byte [ebx + 0x30]
test al, 4
je 0x40e82e
xor edx, edx
mov dword [0x431290], edx
mov ecx, eax
shr cl, 6
mov byte [ebp - 0x2c], cl
and byte [ebp - 0x2c], 1
test esi, esi
je 0x40e8fb
test al, 2
jne 0x40e8e0
mov eax, dword [0x431540]
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x40e8e0
cmp esi, 2
jne 0x40e880
cmp byte [ebp - 0x2c], 0
jne 0x40e880
xor ecx, ecx
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov ecx, dword [ebp - 0x24]
mov eax, ebx
mov edx, dword [ebp - 0x28]
call fcn.0040c747
jmp 0x40e887
mov cl, 2
cmp esi, 2
jne 0x40e889
mov cl, 3
mov edx, dword [ebx + 0x18]
mov al, byte [edx + 0x50]
and eax, 0xfffffffc
or eax, ecx
cmp dword [0x4288dc], 0xffffffff
mov byte [edx + 0x50], al
jne 0x40e8c4
mov dword [esp], str..DELETE_ON_ERROR
call fcn.00404cc6
test eax, eax
je 0x40e8bc
mov al, byte [eax + 0x51]
shr al, 4
and eax, 1
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov dword [0x4288dc], eax
mov eax, dword [ebp - 0x24]
or eax, dword [0x4288dc]
je 0x40e97a
mov dword [esp], ebx
call fcn.00402be5
jmp 0x40e97a
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov ecx, dword [ebp - 0x24]
mov eax, ebx
mov edx, dword [ebp - 0x28]
call fcn.0040c747
mov eax, ebx
call fcn.0040c688
test eax, eax
je 0x40e971
mov eax, dword [0x431020]
test eax, eax
je 0x40e918
mov eax, dword [ebx + 0x18]
or byte [eax + 0x50], 3
jmp 0x40e95e
cmp dword [0x4314c8], 1
jne 0x40e92c
lea eax, [ebx + 8]
mov dword [esp], eax
call fcn.00412246
xor edx, edx
mov dword [esp], edx
call fcn.0041efaa
mov edx, eax
mov al, byte [ebx + 0x30]
and edx, 1
and eax, 0xfffffffe
or eax, edx
mov byte [ebx + 0x30], al
mov eax, ebx
call fcn.0040df80
mov eax, dword [ebx + 0x18]
mov al, byte [eax + 0x50]
and eax, 0xc
cmp al, 8
je 0x40ea74
mov eax, dword [ebx + 0x18]
test byte [eax + 0x50], 3
je 0x40e978
mov dword [esp], ebx
call fcn.00402be5
jmp 0x40e978
mov eax, dword [ebx + 0x18]
and byte [eax + 0x50], 0xfc
xor esi, esi
lea eax, [ebx + 8]
mov dword [esp], eax
call fcn.00412246
mov eax, dword [0x431020]
test eax, eax
jne 0x40e999
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.00417443
mov eax, dword [ebx + 0x2c]
test eax, eax
jle 0x40ea09
test byte [0x43154c], 4
je 0x40ea09
test byte [ebx + 0x30], 1
mov ecx, str.__remote_
mov edx, 0x42b6b8
cmovne edx, ecx
mov dword [ebp - 0x30], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x42b91d
mov dword [esp], 0x431220
call fcn.0040c726
mov edx, dword [ebp - 0x30]
mov dword [esp + 8], 0x431220
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp], str.Removing_child__p_PID__s_s_from_chain._n
call fcn.0040c6f6
mov dword [esp], 1
call dword [0x428f14]
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov edx, dword [0x4311e8]
test edx, edx
je 0x40ea24
mov al, byte [ebx + 0x30]
shr al, 5
and eax, 1
sub edx, eax
mov dword [0x4311e8], edx
mov eax, dword [ebx + 0x14]
test edi, edi
jne 0x40ea32
mov dword [0x4311ec], eax
jmp 0x40ea35
mov dword [edi + 0x14], eax
mov eax, ebx
call fcn.0040dbcb
cmp dword [ebp + 0xc], 0
sete dl
test esi, esi
setne al
test dl, al
je 0x40ea6f
cmp byte [ebp - 0x2c], 0
jne 0x40ea6f
mov eax, dword [0x43152c]
mov dword [ebp + 8], eax
test eax, eax
jne 0x40ea6f
mov eax, dword [0x431020]
test eax, eax
jne 0x40ea74
mov dword [esp], esi
call fcn.00410606
xor eax, eax
mov dword [ebp + 8], eax
cmp dword [0x4311ec], 0
jne 0x40e3f5
cmp dword [0x431160], 0
jne 0x40e3f5
jmp 0x40eadd
cmp dword [ebp + 8], 0
je 0x40e3ff
mov dword [esp], 1
call dword [0x428f14]
mov dword [esp], eax
call sub.msvcrt.dll_fflush
cmp dword [0x431284], 0
jne 0x40eace
xor eax, eax
mov dword [esp + 8], str._Waiting_for_unfinished_jobs....
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.00412148
mov dword [0x431284], 1
jmp 0x40e3ff
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret