Function at 0x40abde
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x81b0
call fcn.0047f270
mov eax, dword [0x4d4664]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
and dword [ebp - 0x8198], 0
mov dword [ebp - 0x819c], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x81a0], eax
add eax, 0x428
push 0xa
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x8194], ebx
push eax
call fcn.00485910
lea eax, [ebp - 0x8198]
mov byte [ebp - 6], 0
push eax
lea eax, [ebp - 0x10]
push 0x4a3084
push eax
call fcn.00406dc4
mov eax, dword [ebp - 0x8198]
add esp, 0x18
cmp eax, 8
jle 0x40ac58
or eax, 0xffffffff
jmp 0x40b045
push esi
xor esi, esi
mov dword [ebp - 0x81a8], esi
push edi
mov edi, 0x7a2
test eax, eax
jle 0x40b041
mov esi, dword [ebp - 0x81a0]
dec eax
mov dword [ebp - 0x8198], eax
imul eax, eax, 0x6e
push 0xa
add eax, 0x496
add eax, esi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00485910
and dword [ebp - 0x8190], 0
lea eax, [ebp - 0x8190]
push eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x12], 0
push 0x4a3084
push eax
call fcn.00406dc4
add edi, dword [ebp - 0x8190]
mov eax, edi
mov dword [ebp - 0x81a4], edi
neg eax
push 2
push eax
push dword [ebp - 0x819c]
mov dword [ebp - 0x81b0], eax
call fcn.0048f9dc
add esp, 0x24
test eax, eax
jne 0x40b02d
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x40ad37
cmp byte [eax], 0
je 0x40ad37
lea edx, [ebp - 0x18c]
mov ecx, eax
sub edx, eax
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40acf7
lea ecx, [ebp - 0x18c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ad0a
sub ecx, edx
cmp byte [ebp + ecx - 0x18d], 0x5c
je 0x40ad4b
lea edi, [ebp - 0x18c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ad24
mov ax, word [0x4a2e40]
mov word [edi], ax
jmp 0x40ad4b
xor ecx, ecx
mov al, byte [ecx + 0x4a2442]
mov byte [ebp + ecx - 0x18c], al
inc ecx
test al, al
jne 0x40ad39
imul eax, dword [ebp - 0x8198], 0x6e
push 0x64
add eax, 0x432
add eax, esi
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.00485910
add esp, 0xc
mov byte [ebp - 0x20], 0
cmp byte [ebp - 0x84], 0x5c
je 0x40adba
cmp byte [ebp - 0x83], 0x3a
jne 0x40ad8a
cmp byte [ebp - 0x82], 0x5c
je 0x40adba
lea edx, [ebp - 0x84]
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x40ad92
lea edi, [ebp - 0x18c]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ada2
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x40adcf
xor ecx, ecx
mov al, byte [ebp + ecx - 0x84]
mov byte [ebp + ecx - 0x18c], al
inc ecx
test al, al
jne 0x40adbc
lea eax, [ebp - 0x18c]
push 0x4a3770
push eax
call fcn.00489437
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x40aed7
push 2
push 0
push esi
call fcn.0048f9dc
push esi
call fcn.0048ff4e
add esp, 0x10
xor edi, edi
cmp eax, dword [ebp - 0x8190]
jne 0x40aece
push 0
push 0
push esi
inc edi
call fcn.0048f9dc
mov eax, dword [ebp - 0x8190]
xor ecx, ecx
add esp, 0xc
mov dword [ebp - 0x81ac], ecx
test eax, eax
jle 0x40aece
sub eax, ecx
mov ecx, 0x4000
cmp eax, ecx
jb 0x40ae3e
mov eax, ecx
push dword [ebp - 0x819c]
push eax
lea eax, [ebp - 0x818c]
push 1
push eax
call fcn.0048f672
mov ebx, eax
add esp, 0x10
test ebx, ebx
jle 0x40aea8
push esi
push ebx
lea eax, [ebp - 0x418c]
push 1
push eax
call fcn.0048f672
add esp, 0x10
cmp eax, ebx
jne 0x40aea8
push ebx
lea eax, [ebp - 0x418c]
push eax
lea eax, [ebp - 0x818c]
push eax
call fcn.00483043
add esp, 0xc
test eax, eax
jne 0x40aea8
mov ecx, dword [ebp - 0x81ac]
mov eax, dword [ebp - 0x8190]
add ecx, ebx
mov dword [ebp - 0x81ac], ecx
cmp ecx, eax
jl 0x40ae31
jmp 0x40aec8
push 2
push dword [ebp - 0x81b0]
xor edi, edi
push dword [ebp - 0x819c]
call fcn.0048f9dc
add esp, 0xc
test eax, eax
jne 0x40b073
mov ebx, dword [ebp - 0x8194]
push esi
call fcn.0048921e
pop ecx
jmp 0x40aed9
xor edi, edi
lea eax, [ebp - 0x18c]
push eax
lea eax, [ebp - 0x418c]
test edi, edi
jne 0x40b054
push str.Updating___s_..._r_n
push eax
call fcn.004018a8
push 1
lea eax, [ebp - 0x418c]
push eax
push ebx
call fcn.0040bfb7
mov esi, 0x4a37b8
lea eax, [ebp - 0x18c]
push esi
push eax
call fcn.00489437
mov ebx, eax
add esp, 0x20
test ebx, ebx
jne 0x40af49
lea eax, [ebp - 0x18c]
push eax
call fcn.004062cc
lea eax, [ebp - 0x18c]
push esi
push eax
call fcn.00489437
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x40b01b
mov eax, dword [ebp - 0x8190]
xor edi, edi
test eax, eax
jle 0x40b014
sub eax, edi
mov ecx, 0x4000
cmp eax, ecx
jb 0x40af66
mov eax, ecx
push dword [ebp - 0x819c]
push eax
lea eax, [ebp - 0x818c]
push 1
push eax
call fcn.0048f672
mov esi, eax
add esp, 0x10
test esi, esi
jle 0x40afdc
push ebx
push esi
lea eax, [ebp - 0x818c]
push 1
push eax
call fcn.004896cd
add esp, 0x10
cmp eax, esi
jne 0x40afa9
mov eax, dword [ebp - 0x8190]
add edi, esi
cmp edi, eax
jl 0x40af59
jmp 0x40b014
call fcn.0048979e
push dword [eax]
lea eax, [ebp - 0x418c]
push str.Write_failed._Error:__d_r_n
push eax
call fcn.004018a8
push 1
lea eax, [ebp - 0x418c]
push eax
push dword [ebp - 0x8194]
call fcn.0040bfb7
add esp, 0x18
push 0xfffffffffffffffe
jmp 0x40b00d
call fcn.0048979e
push dword [eax]
lea eax, [ebp - 0x418c]
push str.Read_failed._Error:__d_r_n
push eax
call fcn.004018a8
push 1
lea eax, [ebp - 0x418c]
push eax
push dword [ebp - 0x8194]
call fcn.0040bfb7
add esp, 0x18
push 0xfffffffffffffffd
pop eax
mov dword [ebp - 0x81a8], eax
push ebx
call fcn.0048921e
pop ecx
mov ebx, dword [ebp - 0x8194]
mov edi, dword [ebp - 0x81a4]
mov esi, dword [ebp - 0x81a0]
mov eax, dword [ebp - 0x8198]
test eax, eax
jg 0x40ac75
mov esi, dword [ebp - 0x81a8]
pop edi
mov eax, esi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.0047f259
mov esp, ebp
pop ebp
ret
push str.__s__is_up_to_date._r_n
push eax
call fcn.004018a8
push 1
lea eax, [ebp - 0x418c]
push eax
push ebx
call fcn.0040bfb7
add esp, 0x18
jmp 0x40b021
call fcn.0048979e
push dword [eax]
lea eax, [ebp - 0x818c]
push dword [ebp - 0x81a4]
push str.Failed_to_move_offset___d_in_file__Code:__d_r_n
push eax
call fcn.004018a8
push 1
lea eax, [ebp - 0x818c]
push eax
push dword [ebp - 0x8194]
call fcn.0040bfb7
push esi
call fcn.0048921e
add esp, 0x20
push 0xfffffffffffffffc
pop esi
jmp 0x40b041