Function at 0x40e200
Capabilities:
Delete file
Read file on windows

Disassembly:
sub esp, 0x834
mov eax, dword [0x47613c]
xor eax, esp
mov dword [esp + 0x830], eax
push esi
push edi
mov esi, ecx
mov ecx, dword [esi + 4]
push 3
lea eax, [esp + 0xc]
lea edi, [esi + 4]
push eax
push ecx
call fcn.004435fb
push 3
lea edx, [esp + 0x18]
push 0x45fd2c
push edx
call fcn.0044221f
add esp, 0x18
test eax, eax
je 0x40e2cd
push 0x7e
call fcn.00427cae
test eax, eax
je 0x40e25f
push 0x7e
push eax
mov ecx, 0x47a6a4
call fcn.00402880
push 0x18
push str.:_data_header_file_error
mov ecx, 0x47a6a4
call fcn.00402940
push 3
push 0x45fdb0
mov ecx, 0x47a6a4
call fcn.00402940
mov eax, dword [0x47a6a4]
mov ecx, 1
sub ecx, dword [eax - 4]
or ecx, dword [eax - 8]
jge 0x40e2a4
push 0
mov ecx, 0x47a6a4
call fcn.004013e0
mov eax, dword [0x47a6a4]
mov edx, dword [0x478674]
push eax
push edx
call fcn.00403230
add esp, 8
pop edi
xor al, al
pop esi
mov ecx, dword [esp + 0x830]
xor ecx, esp
call fcn.00441051
add esp, 0x834
ret
mov ecx, dword [edi]
push ebx
push 4
lea eax, [esi + 0x88]
push eax
push ecx
call fcn.004435fb
mov edx, dword [edi]
lea eax, [esi + 0x80]
push 4
push eax
push edx
call fcn.004435fb
mov ecx, dword [edi]
push 0x28
lea eax, [esp + 0x30]
push eax
push ecx
call fcn.004435fb
mov edx, dword [esi + 0x60]
add esp, 0x24
push edx
push edi
mov ecx, esi
call fcn.0040d4a0
push edi
mov ecx, esi
call fcn.0040d9a0
push edi
mov ecx, esi
call fcn.0040c550
mov ecx, dword [esi + 0xc]
push 3
lea eax, [esp + 0x10]
lea ebx, [esi + 0xc]
push eax
push ecx
call fcn.004435fb
push 3
lea edx, [esp + 0x1c]
push 0x45fd2c
push edx
call fcn.0044221f
add esp, 0x18
test eax, eax
je 0x40e3d4
push 0x7e
call fcn.00427cae
test eax, eax
je 0x40e365
push 0x7e
push eax
mov ecx, 0x47a6a4
call fcn.00402880
push 0x1a
push str.:_update_header_file_error
mov ecx, 0x47a6a4
call fcn.00402940
push 3
push 0x45fd90
mov ecx, 0x47a6a4
call fcn.00402940
mov eax, dword [0x47a6a4]
mov ecx, 1
sub ecx, dword [eax - 4]
or ecx, dword [eax - 8]
jge 0x40e3aa
push 0
mov ecx, 0x47a6a4
call fcn.004013e0
mov eax, dword [0x47a6a4]
mov edx, dword [0x478674]
push eax
push edx
call fcn.00403230
add esp, 8
pop ebx
pop edi
xor al, al
pop esi
mov ecx, dword [esp + 0x830]
xor ecx, esp
call fcn.00441051
add esp, 0x834
ret
push ebp
lea eax, [esi + 0x8c]
push 4
push eax
mov eax, dword [ebx]
push eax
call fcn.004435fb
mov ecx, dword [ebx]
push 4
lea ebp, [esi + 0x84]
push ebp
push ecx
call fcn.004435fb
mov edx, dword [ebx]
lea eax, [esi + 0x14]
push 0x28
push eax
push edx
call fcn.004435fb
mov eax, dword [esi + 0x64]
add esp, 0x24
push eax
push ebx
mov ecx, esi
call fcn.0040d4a0
push 0x800
lea ecx, [esp + 0x44]
push 0
push ecx
call fcn.004415f0
mov eax, dword [esi + 0x64]
add esp, 0xc
lea edx, [esp + 0x40]
push edx
push eax
mov ecx, esi
call fcn.0040d810
mov ecx, dword [ebp]
push 0
push ecx
mov ecx, dword [0x478674]
push 0
push 0
add ecx, 0xfc0
call fcn.00401cf0
mov ecx, dword [0x478674]
push 0
push 0
add ecx, 0xfc0
call fcn.00401fc0
mov ecx, esi
mov dword [esi + 0x94], 0
call fcn.0040e0b0
test al, al
jne 0x40e4df
push 0x7e
call fcn.00427cae
test eax, eax
je 0x40e495
push 0x7e
push eax
mov ecx, 0x47a6a4
call fcn.00402880
push str.:_update_fail
mov ecx, 0x47a6a4
call fcn.00402d80
push 0x45fd7c
mov ecx, 0x47a6a4
call fcn.00402d80
mov eax, dword [0x47a6a4]
mov edx, 1
sub edx, dword [eax - 4]
or edx, dword [eax - 8]
jge 0x40e570
push 0
mov ecx, 0x47a6a4
call fcn.004013e0
mov eax, dword [0x47a6a4]
jmp 0x40e570
mov ecx, dword [0x478674]
call fcn.00403510
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x40e4fa
push eax
call fcn.00442f6c
add esp, 4
mov dword [edi], 0xffffffff
mov eax, dword [esi + 0x40]
lea ecx, [esi + 0x40]
sub eax, 0x10
mov edx, 1
sub edx, dword [eax + 0xc]
or edx, dword [eax + 8]
jge 0x40e51d
push 0
call fcn.004013e0
mov eax, dword [esi + 0x40]
push 0x80
push 0x8301
push eax
call fcn.004440bd
add esp, 0xc
mov dword [edi], eax
cmp eax, 0xffffffff
jne 0x40e586
push 0x7e
mov ecx, 0x47a6a4
call fcn.00402a30
push str.:_saveheader
mov ecx, 0x47a6a4
call fcn.00402d80
push 0x45fd68
mov ecx, 0x47a6a4
call fcn.00402d80
push 0
mov ecx, 0x47a6a4
call fcn.00401470
push eax
mov eax, dword [0x478674]
push eax
call fcn.00403230
add esp, 8
xor al, al
jmp 0x40e680
push 3
push 0x45fd2c
push eax
call fcn.00443e2b
mov ecx, dword [edi]
push 4
lea eax, [esi + 0x8c]
push eax
push ecx
call fcn.00443e2b
mov edx, dword [ebp]
add edx, dword [esi + 0x80]
mov ecx, dword [edi]
push 4
lea eax, [esp + 0x30]
push eax
push ecx
mov dword [esp + 0x38], edx
call fcn.00443e2b
mov edx, dword [edi]
push 0x28
lea eax, [esi + 0x14]
push eax
push edx
call fcn.00443e2b
mov eax, dword [esi + 0x60]
add esp, 0x30
push eax
mov ecx, esi
call fcn.0040cab0
push edi
mov ecx, esi
call fcn.0040ca00
push edi
mov ecx, esi
call fcn.0040c580
mov eax, dword [esi]
cmp eax, 0xffffffff
je 0x40e5fc
push eax
call fcn.00442f6c
add esp, 4
mov eax, dword [esi + 8]
mov dword [esi], 0xffffffff
cmp eax, 0xffffffff
je 0x40e613
push eax
call fcn.00442f6c
add esp, 4
mov eax, dword [edi]
mov dword [esi + 8], 0xffffffff
cmp eax, 0xffffffff
je 0x40e62a
push eax
call fcn.00442f6c
add esp, 4
mov eax, dword [ebx]
mov dword [edi], 0xffffffff
cmp eax, 0xffffffff
je 0x40e640
push eax
call fcn.00442f6c
add esp, 4
mov dword [ebx], 0xffffffff
mov ecx, dword [0x478674]
call fcn.00403570
push 0
lea ecx, [esi + 0x44]
call fcn.00401470
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
push eax
call edi
push 0
lea ecx, [esi + 0x48]
call fcn.00401470
push eax
call edi
push 0
lea ecx, [esi + 0x4c]
call fcn.00401470
push eax
call edi
mov al, 1
mov ecx, dword [esp + 0x840]
pop ebp
pop ebx
pop edi
pop esi
xor ecx, esp
call fcn.00441051
add esp, 0x834
ret