Function at 0x418eb0
Capabilities:
Check if file exists
Clear file content
Create directory
Get disk size
Get file attributes
Move file
Set file attributes

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43b54b
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x65f8
call fcn.00438a40
mov eax, dword [0x44a00c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x65c0], ecx
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebx + 0xc]
mov dword [ebp - 0x65dc], eax
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x65d4], ecx
mov dword [ebp - 0x65bc], eax
cmp byte [eax], 0
je 0x41aa9b
push 4
lea edx, [eax + 0x18]
push str.PING
push edx
lea esi, [eax + 0x2022]
call fcn.00424470
add esp, 0xc
test eax, eax
jne 0x418f52
push str.OK_r_n_r_n
push esi
call fcn.00401480
add esp, 8
jmp 0x41a5dc
mov esi, dword [ebp - 0x65bc]
push 4
push str.STAT
add esi, 0x18
push esi
call fcn.00424470
add esp, 0xc
test eax, eax
jne 0x419685
push str.Path
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65c4]
push eax
call fcn.0040d170
mov esi, dword [eax]
mov eax, dword [ebp - 0x641c]
cmp eax, 0x10
jb 0x418fb2
inc eax
push eax
push dword [ebp - 0x6430]
call fcn.00404100
mov dword [ebp - 0x641c], 0xf
mov dword [ebp - 0x6420], 0
mov byte [ebp - 0x6430], 0
cmp esi, dword [edi]
je 0x41aa9b
push 0x2000
lea eax, [ebp - 0x2418]
push 0
push eax
call fcn.0041ea80
lea edi, [esi + 0x28]
mov dword [ebp - 0x65cc], 0
add esp, 0xc
cmp dword [edi + 0x14], 0x10
jb 0x419002
mov eax, dword [edi]
jmp 0x419004
mov eax, edi
mov esi, dword [ebp - 0x65c0]
lea ecx, [ebp - 0x65cc]
push ecx
lea ecx, [ebp - 0x2418]
push ecx
push eax
mov ecx, esi
call fcn.00418310
mov eax, dword [ebp - 0x65cc]
test eax, eax
je 0x419223
mov dword [ebp - 0x65c8], 0
mov dword [ebp - 0x65c4], 0
mov edi, dword [eax + 0x414]
mov byte [ebp - 0x65dd], 1
cmp edi, 0xffffffff
je 0x41905d
mov byte [ebp - 0x65dd], 0
jmp 0x41907b
push 0
push 0
push 3
push 0
push 3
push bind
lea eax, [ebp - 0x2418]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
xor esi, esi
mov dword [ebp - 0x65e4], 0x200
cmp edi, 0xffffffff
je 0x4191ea
push esi
lea eax, [ebp - 0x65d0]
mov dword [ebp - 0x65d0], esi
push eax
push 8
lea eax, [ebp - 0x65c8]
push eax
push esi
push esi
push 0x7405c
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x4190c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push 0
lea eax, [ebp - 0x65d0]
mov dword [ebp - 0x6430], 0
push eax
push 0x18
lea eax, [ebp - 0x6430]
mov dword [ebp - 0x641c], 0
push eax
push 0
push 0
push 0x70000
xorps xmm0, xmm0
push edi
movups xmmword [ebp - 0x642c], xmm0
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x419126
mov eax, dword [ebp - 0x641c]
push eax
mov dword [ebp - 0x65e4], eax
lea eax, [ebp - 0x2418]
push eax
push str.____Get_HardDisk___s__Sector_size_d_n
call fcn.00401410
add esp, 0xc
cmp byte [ebp - 0x65dd], 0
je 0x419136
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
jne 0x4191f9
mov eax, dword [ebp - 0x65cc]
cmp byte [eax + 0x410], 0
je 0x419154
lea ecx, [esi + 1]
xor eax, eax
jmp 0x41916b
xorps xmm0, xmm0
movlpd qword [ebp - 0x65d8], xmm0
mov eax, dword [ebp - 0x65d4]
mov ecx, dword [ebp - 0x65d8]
push eax
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x65e4]
lea eax, [ebp - 0x418]
push dword [ebp - 0x65c4]
push dword [ebp - 0x65c8]
push str.FILE
push str._s__lld__d__lld__lld__lld__lld
push eax
call fcn.00401480
lea ecx, [ebp - 0x418]
add esp, 0x38
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4191b0
lea eax, [ebp - 0x418]
sub ecx, edx
push eax
mov eax, dword [ebp - 0x65bc]
push ecx
add eax, 0x2022
push str.OK_r_nLength:__d_r_n_r_n_s
push eax
call fcn.00401480
mov ecx, dword [ebp - 0x65dc]
add esp, 0x10
call fcn.004189f0
jmp 0x41aa9e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x4191f9
or esi, 0xffffffff
mov eax, dword [ebp - 0x65bc]
push esi
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
mov ecx, dword [ebp - 0x65dc]
add esp, 0xc
call fcn.004189f0
jmp 0x41aa9e
mov edx, 0x44425c
mov ecx, edi
call fcn.00409700
test al, al
jne 0x419247
mov edx, 0x444260
mov ecx, edi
call fcn.00409700
test al, al
je 0x41934a
cmp word [ebp - 0x2418], 0
je 0x4192cf
mov ecx, 0x4442ac
lea eax, [ebp - 0x2418]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x419286
test dx, dx
je 0x419282
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x419286
add eax, 4
add ecx, 4
test dx, dx
jne 0x419260
xor eax, eax
jmp 0x41928b
sbb eax, eax
or eax, 1
test eax, eax
je 0x4192cf
mov ecx, 0x4442b0
lea eax, [ebp - 0x2418]
nop word [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4192c6
test dx, dx
je 0x4192c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4192c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4192a0
xor eax, eax
jmp 0x4192cb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x41934a
cmp dword [esi + 8], 0
jbe 0x41934a
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x445a84
lea eax, [ebp - 0x418]
push str._s__lld__d__lld__lld__lld__lld
push eax
call fcn.00401480
lea ecx, [ebp - 0x418]
add esp, 0x3c
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x419310
lea eax, [ebp - 0x418]
sub ecx, edx
push eax
mov eax, dword [ebp - 0x65bc]
push ecx
add eax, 0x2022
push str.OK_r_nLength:__d_r_n_r_n_s
push eax
call fcn.00401480
mov ecx, dword [ebp - 0x65dc]
add esp, 0x10
call fcn.004189f0
jmp 0x41aa9e
xor edi, edi
cmp dword [esi + 0x3c], edi
jle 0x4193d8
push edi
push edi
lea eax, [ebp - 0x2418]
push eax
lea ecx, [esi + 0xd4]
call fcn.00416c20
mov edi, eax
test edi, edi
je 0x4193d8
cmp byte [edi + 0x44], 0
lea ecx, [edi + 0x10]
mov esi, dword [edi + 4]
mov dword [ebp - 0x65d0], esi
je 0x4193cf
lea eax, [ecx + 0x18]
push eax
mov eax, dword [ecx + 0x24]
call eax
lea eax, [ebp - 0x647c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
jne 0x4194cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
or eax, 0xffffffff
test esi, esi
cmove esi, eax
test edi, edi
je 0x419425
cmp byte [edi + 0x44], 0
lea ecx, [edi + 0x10]
je 0x419415
lea eax, [ecx + 0x18]
push eax
mov eax, dword [ecx + 0x2c]
call eax
mov ecx, edi
call fcn.00416b00
jmp 0x419431
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x41938a
push 0
push 0x2000000
push 3
push 0
push 7
push 0x80
lea eax, [ebp - 0x2418]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x65d0], esi
cmp esi, 0xffffffff
jne 0x41938a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x419435
or esi, 0xffffffff
jmp 0x419435
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, edi
call fcn.00416b00
jmp 0x419431
push dword [ebp - 0x65d0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x419454
mov eax, dword [ebp - 0x65bc]
push esi
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
add esp, 0xc
jmp 0x41a5dc
mov ecx, dword [ebp - 0x64a4]
mov eax, dword [ebp - 0x6490]
mov edx, dword [ebp - 0x6484]
mov esi, dword [ebp - 0x6488]
mov edi, dword [ebp - 0x648c]
mov dword [ebp - 0x65c0], ecx
mov ecx, dword [ebp - 0x64a8]
mov dword [ebp - 0x6608], eax
mov eax, dword [ebp - 0x6494]
mov dword [ebp - 0x6604], ecx
mov ecx, dword [ebp - 0x64ac]
mov dword [ebp - 0x65fc], eax
mov eax, dword [ebp - 0x6498]
mov dword [ebp - 0x65d4], ecx
mov ecx, dword [ebp - 0x64b0]
mov dword [ebp - 0x65ec], eax
mov eax, dword [ebp - 0x64a0]
mov dword [ebp - 0x65c4], ecx
mov cl, byte [ebp - 0x64b4]
jmp 0x4195fb
test edi, edi
je 0x4194ea
cmp byte [edi + 0x44], 0
lea ecx, [edi + 0x10]
je 0x4194e3
lea eax, [ecx + 0x18]
push eax
mov eax, dword [ecx + 0x2c]
call eax
jmp 0x4194ea
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0x6470]
mov eax, dword [ebp - 0x646c]
sub ecx, 0xd53e8000
push 0
push 0x989680
sbb eax, 0x19db1de
push eax
push ecx
call fcn.004388d0
mov ecx, dword [ebp - 0x6464]
mov dword [ebp - 0x65fc], edx
mov edx, dword [ebp - 0x6468]
sub edx, 0xd53e8000
mov dword [ebp - 0x65ec], eax
push 0
push 0x989680
sbb ecx, 0x19db1de
push ecx
push edx
call fcn.004388d0
mov ecx, dword [ebp - 0x6474]
mov dword [ebp - 0x65cc], edx
mov edx, dword [ebp - 0x6478]
sub edx, 0xd53e8000
mov dword [ebp - 0x6608], eax
push 0
push 0x989680
sbb ecx, 0x19db1de
push ecx
push edx
call fcn.004388d0
mov dword [ebp - 0x65f4], eax
mov eax, dword [ebp - 0x647c]
mov dword [ebp - 0x65e4], eax
shr eax, 4
and eax, 0xffffff01
mov dword [ebp - 0x65f8], edx
mov dword [ebp - 0x65d0], eax
mov eax, dword [ebp - 0x6450]
mov dword [ebp - 0x65c0], eax
mov eax, dword [ebp - 0x644c]
mov dword [ebp - 0x6604], eax
mov eax, dword [ebp - 0x645c]
mov dword [ebp - 0x65d4], eax
mov eax, dword [ebp - 0x6458]
mov dword [ebp - 0x65c4], eax
test edi, edi
je 0x4195d6
mov ecx, edi
call fcn.00416b00
jmp 0x4195dd
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [ebp - 0x65cc]
mov esi, dword [ebp - 0x65f4]
mov edx, dword [ebp - 0x65f8]
mov eax, dword [ebp - 0x65e4]
mov ecx, dword [ebp - 0x65d0]
push dword [ebp - 0x65c0]
test cl, cl
push dword [ebp - 0x6604]
push edx
push esi
push edi
push dword [ebp - 0x6608]
mov edx, str.FILE
push dword [ebp - 0x65fc]
push dword [ebp - 0x65ec]
push eax
push dword [ebp - 0x65d4]
mov eax, 0x445a84
push dword [ebp - 0x65c4]
cmove eax, edx
push eax
lea eax, [ebp - 0x418]
push str._s__lld__d__lld__lld__lld__lld
push eax
call fcn.00401480
lea ecx, [ebp - 0x418]
add esp, 0x38
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x419656
lea eax, [ebp - 0x418]
sub ecx, edx
push eax
mov eax, dword [ebp - 0x65bc]
push ecx
add eax, 0x2022
push str.OK_r_nLength:__d_r_n_r_n_s
push eax
call fcn.00401480
add esp, 0x10
jmp 0x41a5dc
push 5
push str.MKDIR
push esi
call fcn.00424470
add esp, 0xc
test eax, eax
jne 0x41980e
push str.Path
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65d4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
cmp dword [esi + 0x3c], 0x10
lea edi, [esi + 0x28]
jb 0x4196e4
mov eax, dword [edi]
jmp 0x4196e6
mov eax, edi
mov esi, dword [ebp - 0x65c0]
mov ecx, esi
push eax
call fcn.00418650
test al, al
jne 0x41973e
mov eax, dword [ebp - 0x65bc]
push 1
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
add esp, 0xc
cmp dword [edi + 0x14], 0x10
jb 0x41971b
mov edi, dword [edi]
push edi
push str.MKDIR
push str.not_policy___s_:___s__n
call fcn.00401410
add esp, 0xc
mov ecx, dword [ebp - 0x65dc]
call fcn.004189f0
jmp 0x41aa9e
push 0x2000
lea eax, [ebp - 0x4418]
push 0
push eax
call fcn.0041ea80
add esp, 0xc
mov dword [ebp - 0x65c4], 0
cmp dword [edi + 0x14], 0x10
jb 0x419768
mov eax, dword [edi]
jmp 0x41976a
mov eax, edi
lea ecx, [ebp - 0x65c4]
push ecx
lea ecx, [ebp - 0x4418]
push ecx
push eax
mov ecx, esi
call fcn.00418310
cmp dword [ebp - 0x65c4], 0
jne 0x41aa9b
cmp dword [esi + 0x3c], 0
jle 0x4197a5
lea eax, [ebp - 0x4418]
push eax
lea ecx, [esi + 0xd4]
call fcn.00416e90
push 0
lea eax, [ebp - 0x4418]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x41a397
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
or eax, 0xffffffff
test esi, esi
cmove esi, eax
mov eax, dword [ebp - 0x65bc]
push esi
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
add esp, 0xc
cmp esi, 0xb7
je 0x41a5dc
cmp dword [edi + 0x14], 0x10
jb 0x4197fa
mov edi, dword [edi]
push esi
push edi
push str._mkdir___s__err__d__n
call fcn.0040eaf0
add esp, 0xc
jmp 0x41a5dc
push 7
push str.DELFILE
push esi
call fcn.00424470
add esp, 0xc
test eax, eax
jne 0x4199b1
push str.Path
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65d4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
cmp dword [esi + 0x3c], 0x10
lea edi, [esi + 0x28]
jb 0x41986d
mov eax, dword [edi]
jmp 0x41986f
mov eax, edi
push eax
push str._delete___s__n
call fcn.00401410
add esp, 8
cmp dword [edi + 0x14], 0x10
jb 0x419887
mov eax, dword [edi]
jmp 0x419889
mov eax, edi
mov esi, dword [ebp - 0x65c0]
mov ecx, esi
push eax
call fcn.00418650
test al, al
jne 0x4198c9
mov eax, dword [ebp - 0x65bc]
push 1
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
add esp, 0xc
cmp dword [edi + 0x14], 0x10
jb 0x4198be
mov edi, dword [edi]
push edi
push str.DELFILE
jmp 0x419721
push 0x2000
lea eax, [ebp - 0x2418]
push 0
push eax
call fcn.0041ea80
add esp, 0xc
mov dword [ebp - 0x65c4], 0
cmp dword [edi + 0x14], 0x10
jb 0x4198f1
mov edi, dword [edi]
lea eax, [ebp - 0x65c4]
mov ecx, esi
push eax
lea eax, [ebp - 0x2418]
push eax
push edi
call fcn.00418310
cmp dword [ebp - 0x65c4], 0
jne 0x41aa9b
cmp dword [esi + 0x3c], 0
jle 0x41992c
lea eax, [ebp - 0x2418]
push eax
lea ecx, [esi + 0xd4]
call fcn.00416e90
lea eax, [ebp - 0x2418]
mov byte [ebp - 0x65c4], 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41995a
test al, 0x10
mov ecx, 1
mov eax, dword [ebp - 0x65c4]
movzx eax, al
cmovne eax, ecx
jmp 0x419960
mov eax, dword [ebp - 0x65c4]
mov dl, al
lea ecx, [ebp - 0x2418]
call fcn.00418020
test eax, eax
je 0x41a397
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [ebp - 0x65bc]
push esi
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
add esp, 0xc
lea eax, [ebp - 0x2418]
push esi
push eax
push str._delete___s__errno_d_n
call fcn.0040eaf0
add esp, 0xc
jmp 0x41a5dc
push 6
push str.RENAME
push esi
call fcn.00424470
add esp, 0xc
test eax, eax
jne 0x419c09
push str.OldPath
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65d4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
cmp dword [esi + 0x3c], 0x10
lea eax, [esi + 0x28]
mov dword [ebp - 0x65c4], eax
jb 0x419a14
mov eax, dword [eax]
mov esi, dword [ebp - 0x65c0]
mov ecx, esi
push eax
call fcn.00418650
test al, al
jne 0x419a5a
mov eax, dword [ebp - 0x65bc]
push 1
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
mov eax, dword [ebp - 0x65c4]
add esp, 0xc
cmp dword [eax + 0x14], 0x10
jb 0x419a4f
mov eax, dword [eax]
push eax
push str.RENAME_OLDPATH
jmp 0x419721
push 0x2000
lea eax, [ebp - 0x4418]
push 0
push eax
call fcn.0041ea80
mov eax, dword [ebp - 0x65c4]
add esp, 0xc
mov dword [ebp - 0x65cc], 0
cmp dword [eax + 0x14], 0x10
jb 0x419a88
mov eax, dword [eax]
lea ecx, [ebp - 0x65cc]
push ecx
lea ecx, [ebp - 0x4418]
push ecx
push eax
mov ecx, esi
call fcn.00418310
cmp dword [ebp - 0x65cc], 0
jne 0x41aa9b
push str.NewPath
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65c4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
cmp dword [esi + 0x3c], 0x10
lea edi, [esi + 0x28]
jb 0x419af2
mov eax, dword [edi]
jmp 0x419af4
mov eax, edi
mov esi, dword [ebp - 0x65c0]
mov ecx, esi
push eax
call fcn.00418650
test al, al
jne 0x419b34
mov eax, dword [ebp - 0x65bc]
push 1
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
add esp, 0xc
cmp dword [edi + 0x14], 0x10
jb 0x419b29
mov edi, dword [edi]
push edi
push str.RENAME_NEWPATH
jmp 0x419721
push 0x2000
lea eax, [ebp - 0x2418]
push 0
push eax
call fcn.0041ea80
add esp, 0xc
mov dword [ebp - 0x65cc], 0
cmp dword [edi + 0x14], 0x10
jb 0x419b5c
mov edi, dword [edi]
lea eax, [ebp - 0x65cc]
mov ecx, esi
push eax
lea eax, [ebp - 0x2418]
push eax
push edi
call fcn.00418310
cmp dword [ebp - 0x65cc], 0
jne 0x41aa9b
cmp dword [esi + 0x3c], 0
jle 0x419ba9
lea eax, [ebp - 0x4418]
push eax
lea ecx, [esi + 0xd4]
call fcn.00416e90
lea eax, [ebp - 0x2418]
push eax
lea ecx, [esi + 0xd4]
call fcn.00416e90
lea eax, [ebp - 0x2418]
push eax
lea eax, [ebp - 0x4418]
push eax
call fcn.00425b3c
add esp, 8
test eax, eax
jns 0x41a397
call fcn.00422fff
mov esi, dword [eax]
mov eax, dword [ebp - 0x65bc]
push esi
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
add esp, 0xc
lea eax, [ebp - 0x2418]
push esi
push eax
lea eax, [ebp - 0x4418]
push eax
push str._rename___s_______s__err__d__n
call fcn.0040eaf0
add esp, 0x10
jmp 0x41a5dc
push 0xa
push str.SETNEWSIZE
push esi
call fcn.00424470
add esp, 0xc
test eax, eax
jne 0x419f86
push str.Path
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65ec]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
cmp dword [esi + 0x3c], 0x10
lea eax, [esi + 0x28]
mov dword [ebp - 0x65c4], eax
jb 0x419c6c
mov eax, dword [eax]
mov esi, dword [ebp - 0x65c0]
mov ecx, esi
push eax
call fcn.00418650
test al, al
jne 0x419cb2
mov eax, dword [ebp - 0x65bc]
push 1
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
mov eax, dword [ebp - 0x65c4]
add esp, 0xc
cmp dword [eax + 0x14], 0x10
jb 0x419ca7
mov eax, dword [eax]
push eax
push str.SETNEWSIZE
jmp 0x419721
push 0x2000
lea eax, [ebp - 0x2418]
push 0
push eax
call fcn.0041ea80
mov eax, dword [ebp - 0x65c4]
add esp, 0xc
mov dword [ebp - 0x65d4], 0
cmp dword [eax + 0x14], 0x10
jb 0x419ce0
mov eax, dword [eax]
lea ecx, [ebp - 0x65d4]
push ecx
lea ecx, [ebp - 0x2418]
push ecx
push eax
mov ecx, esi
call fcn.00418310
cmp dword [ebp - 0x65d4], 0
jne 0x41aa9b
push str.NewSize
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65c4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
add esi, 0x28
cmp dword [esi + 0x14], 0x10
jb 0x419d48
mov esi, dword [esi]
push esi
call fcn.00424296
add esp, 4
mov dword [ebp - 0x65d4], eax
lea ecx, [ebp - 0x6430]
mov dword [ebp - 0x65c4], edx
mov byte [ebp - 0x65cc], 0
push str.Sparse
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65ec]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x419dbf
add esi, 0x28
cmp dword [esi + 0x14], 0x10
jb 0x419da5
mov esi, dword [esi]
mov eax, dword [ebp - 0x65cc]
mov ecx, 1
cmp byte [esi], 0x30
movzx eax, al
cmovne eax, ecx
mov dword [ebp - 0x65cc], eax
mov eax, dword [ebp - 0x65c0]
xor esi, esi
xor edi, edi
cmp dword [eax + 0x3c], esi
jle 0x419edb
push 4
push 1
lea ecx, [ebp - 0x2418]
push ecx
lea ecx, [eax + 0xd4]
call fcn.00416c20
mov edi, eax
test edi, edi
je 0x419edb
cmp byte [edi + 0x44], 0
lea ecx, [edi + 0x10]
mov eax, dword [edi + 4]
mov dword [ebp - 0x65c0], eax
je 0x419ecf
lea eax, [ecx + 0x18]
push eax
mov eax, dword [ecx + 0x24]
call eax
mov eax, dword [ebp - 0x65c0]
cmp byte [ebp - 0x65cc], 0
je 0x419e5c
push 0
lea ecx, [ebp - 0x65ec]
push ecx
push 0
push 0
push 0
push 0
push 0x900c4
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x419e5c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x2418]
push eax
push str.Warning:_set_Sparse_File___ws__err_d_n
call fcn.0040eaf0
add esp, 0xc
push 0
push 0
push dword [ebp - 0x65c4]
push dword [ebp - 0x65d4]
push dword [ebp - 0x65c0]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x419e8e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, 0xffffffff
test esi, esi
cmove esi, eax
push dword [ebp - 0x65c0]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x419eb0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, 0xffffffff
test esi, esi
cmove esi, eax
test edi, edi
je 0x419f23
cmp byte [edi + 0x44], 0
lea ecx, [edi + 0x10]
je 0x419f13
lea eax, [ecx + 0x18]
push eax
mov eax, dword [ecx + 0x2c]
call eax
mov ecx, edi
call fcn.00416b00
jmp 0x419f2f
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x419e11
push 0
push 0x80
push 4
push 0
push 6
push 0xc0000000
lea eax, [ebp - 0x2418]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x65c0], eax
cmp eax, 0xffffffff
jne 0x419e17
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x419f2f
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, edi
call fcn.00416b00
jmp 0x419f2f
push dword [ebp - 0x65c0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x65bc]
add eax, 0x2022
test esi, esi
je 0x419f73
push esi
push str._ER_r_nErrno:__u_r_n_r_n
push eax
call fcn.00401480
add esp, 0xc
lea eax, [ebp - 0x2418]
push esi
push dword [ebp - 0x65c4]
push dword [ebp - 0x65d4]
push eax
push str._setnewsize___s______lld___err__d__n
call fcn.0040eaf0
add esp, 0x14
jmp 0x41a5dc
push str.OK_r_n_r_n
push eax
call fcn.00401480
add esp, 8
jmp 0x41a5dc
push 0xc
push str.SETBASICINFO
push esi
call fcn.00424470
add esp, 0xc
test eax, eax
jne 0x41a3f8
push str.Path
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65ec]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
cmp dword [esi + 0x3c], 0x10
lea eax, [esi + 0x28]
mov dword [ebp - 0x65c4], eax
jb 0x419fe9
mov eax, dword [eax]
mov esi, dword [ebp - 0x65c0]
mov ecx, esi
push eax
call fcn.00418650
test al, al
jne 0x41a02f
mov eax, dword [ebp - 0x65bc]
push 1
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
mov eax, dword [ebp - 0x65c4]
add esp, 0xc
cmp dword [eax + 0x14], 0x10
jb 0x41a024
mov eax, dword [eax]
push eax
push str.SETBASICINFO
jmp 0x419721
push 0x2000
lea eax, [ebp - 0x4418]
push 0
push eax
call fcn.0041ea80
mov eax, dword [ebp - 0x65c4]
add esp, 0xc
mov dword [ebp - 0x65d4], 0
cmp dword [eax + 0x14], 0x10
jb 0x41a05d
mov eax, dword [eax]
lea ecx, [ebp - 0x65d4]
push ecx
lea ecx, [ebp - 0x4418]
push ecx
push eax
mov ecx, esi
call fcn.00418310
cmp dword [ebp - 0x65d4], 0
jne 0x41aa9b
xorps xmm0, xmm0
lea ecx, [ebp - 0x6430]
push str.AccessTime
movlpd qword [ebp - 0x65d8], xmm0
movlpd qword [ebp - 0x65f0], xmm0
movlpd qword [ebp - 0x6600], xmm0
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65c4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41a0ed
add esi, 0x28
cmp dword [esi + 0x14], 0x10
jb 0x41a0dc
mov esi, dword [esi]
push esi
call fcn.00424296
add esp, 4
mov dword [ebp - 0x65f4], edx
jmp 0x41a0ff
mov eax, dword [ebp - 0x65d4]
mov dword [ebp - 0x65f4], eax
mov eax, dword [ebp - 0x65d8]
push str.ModifyTime
lea ecx, [ebp - 0x6430]
mov dword [ebp - 0x65f8], eax
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65c4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41a157
add esi, 0x28
cmp dword [esi + 0x14], 0x10
jb 0x41a146
mov esi, dword [esi]
push esi
call fcn.00424296
add esp, 4
mov dword [ebp - 0x65cc], edx
jmp 0x41a169
mov eax, dword [ebp - 0x65ec]
mov dword [ebp - 0x65cc], eax
mov eax, dword [ebp - 0x65f0]
push str.CreateTime
lea ecx, [ebp - 0x6430]
mov dword [ebp - 0x65c0], eax
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65c4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41a1c1
add esi, 0x28
cmp dword [esi + 0x14], 0x10
jb 0x41a1b0
mov esi, dword [esi]
push esi
call fcn.00424296
add esp, 4
mov dword [ebp - 0x65e4], edx
jmp 0x41a1d3
mov eax, dword [ebp - 0x65fc]
mov dword [ebp - 0x65e4], eax
mov eax, dword [ebp - 0x6600]
push str.Attributes
lea ecx, [ebp - 0x6430]
mov dword [ebp - 0x65d0], eax
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65c4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41a225
add esi, 0x28
cmp dword [esi + 0x14], 0x10
jb 0x41a21a
mov esi, dword [esi]
push esi
call fcn.00424347
add esp, 4
jmp 0x41a227
xor eax, eax
xor edi, edi
test eax, eax
je 0x41a23b
push eax
lea eax, [ebp - 0x4418]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0
push 0x2000000
push 3
push 0
push 7
push 0x100
lea eax, [ebp - 0x4418]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x65c4], eax
cmp eax, 0xffffffff
je 0x41a3b5
mov esi, dword [ebp - 0x65f8]
mov edx, dword [ebp - 0x65f4]
add esi, 0x48864000
mov eax, esi
adc edx, 0x295e96
mov ecx, edx
shld ecx, eax, 2
shl eax, 2
add esi, eax
adc edx, ecx
shld edx, esi, 1
add esi, esi
mov dword [ebp - 0x65ec], edx
mov edx, dword [ebp - 0x65cc]
mov dword [ebp - 0x65f0], esi
mov esi, dword [ebp - 0x65c0]
add esi, 0x48864000
mov eax, esi
adc edx, 0x295e96
mov ecx, edx
shld ecx, eax, 2
shl eax, 2
add esi, eax
adc edx, ecx
shld edx, esi, 1
add esi, esi
mov dword [ebp - 0x65d4], edx
mov edx, dword [ebp - 0x65e4]
mov dword [ebp - 0x65d8], esi
mov esi, dword [ebp - 0x65d0]
add esi, 0x48864000
mov eax, esi
adc edx, 0x295e96
mov ecx, edx
shld ecx, eax, 2
shl eax, 2
add esi, eax
adc edx, ecx
shld edx, esi, 1
add esi, esi
mov dword [ebp - 0x65fc], edx
mov dword [ebp - 0x6600], esi
cmp dword [ebp - 0x65cc], edi
jl 0x41a32e
jg 0x41a326
cmp dword [ebp - 0x65c0], edi
jbe 0x41a32e
lea edx, [ebp - 0x65d8]
jmp 0x41a330
xor edx, edx
cmp dword [ebp - 0x65f4], edi
jl 0x41a34a
jg 0x41a342
cmp dword [ebp - 0x65f8], edi
jbe 0x41a34a
lea ecx, [ebp - 0x65f0]
jmp 0x41a34c
xor ecx, ecx
cmp dword [ebp - 0x65e4], edi
jl 0x41a366
jg 0x41a35e
cmp dword [ebp - 0x65d0], edi
jbe 0x41a366
lea eax, [ebp - 0x6600]
jmp 0x41a368
xor eax, eax
mov esi, dword [ebp - 0x65c4]
push edx
push ecx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
jne 0x41a38c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
or eax, 0xffffffff
test edi, edi
cmove edi, eax
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
jne 0x41a3c4
mov eax, dword [ebp - 0x65bc]
add eax, 0x2022
push str.OK_r_n_r_n
push eax
call fcn.00401480
add esp, 8
jmp 0x41a5dc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jne 0x41a3c4
or edi, 0xffffffff
mov eax, dword [ebp - 0x65bc]
push edi
add eax, 0x2022
push str._ER_r_nErrno:__u_r_n_r_n
push eax
call fcn.00401480
add esp, 0xc
lea eax, [ebp - 0x4418]
push edi
push eax
push str._setbasicinfo___s__err__d__n
call fcn.0040eaf0
add esp, 0xc
jmp 0x41a5dc
push 4
push str.FIND
push esi
call fcn.00424470
add esp, 0xc
test eax, eax
jne 0x41a6f1
push str.Path
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65d4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
push 0x2000
lea eax, [ebp - 0x4418]
push 0
push eax
call fcn.0041ea80
add esi, 0x28
mov dword [ebp - 0x65c4], 0
add esp, 0xc
cmp dword [esi + 0x14], 0x10
jb 0x41a475
mov esi, dword [esi]
mov ecx, dword [ebp - 0x65c0]
lea eax, [ebp - 0x65c4]
push eax
lea eax, [ebp - 0x4418]
push eax
push esi
call fcn.00418310
cmp dword [ebp - 0x65c4], 0
jne 0x41aa9b
mov dword [ebp - 0x6434], 0xf
mov dword [ebp - 0x6438], 0
mov byte [ebp - 0x6448], 0
push str.FindName
lea ecx, [ebp - 0x6430]
mov dword [ebp - 4], 0
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65c4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41a50d
add esi, 0x28
lea eax, [ebp - 0x6448]
cmp eax, esi
je 0x41a50d
push 0xffffffffffffffff
push 0
push esi
mov ecx, eax
call fcn.00403ba0
push 0x2000
lea eax, [ebp - 0x2418]
push 0
push eax
call fcn.0041ea80
add esp, 0xc
cmp dword [ebp - 0x6438], 0
jbe 0x41a55c
cmp dword [ebp - 0x6434], 0x10
lea ecx, [ebp - 0x2418]
push 0xfff
push ecx
push 0xffffffffffffffff
lea eax, [ebp - 0x6448]
cmovae eax, dword [ebp - 0x6448]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x65b8]
push eax
mov eax, dword [ebp - 0x65c0]
lea edx, [ebp - 0x2418]
add eax, 4
lea ecx, [ebp - 0x4418]
push eax
call fcn.00402760
mov ecx, dword [ebp - 0x65bc]
add esp, 8
mov dword [ecx + 0x14], eax
test eax, eax
jne 0x41a623
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
or eax, 0xffffffff
test esi, esi
cmove esi, eax
mov eax, dword [ebp - 0x65bc]
push esi
add eax, 0x2022
push str._ER_r_nErrno:__u_r_n_r_n
push eax
call fcn.00401480
add esp, 0xc
lea eax, [ebp - 0x4418]
push esi
push eax
push str._fs_find_first:___s__err__d__n
call fcn.00401410
add esp, 0xc
lea ecx, [ebp - 0x6448]
call fcn.00403680
mov eax, dword [ebp - 0x65bc]
mov eax, dword [eax + 0x4034]
test eax, eax
je 0x41972e
push eax
call fcn.00424799
mov eax, dword [ebp - 0x65bc]
add esp, 4
mov ecx, dword [ebp - 0x65dc]
mov dword [eax + 0x4034], 0
mov dword [eax + 0x4038], 0
call fcn.004189f0
jmp 0x41aa9e
lea eax, [ebp - 0x65b8]
cmp byte [ebp - 0x64b4], 0
push eax
push dword [ebp - 0x64a4]
mov edx, str.FILE
lea esi, [ecx + 0x2022]
push dword [ebp - 0x64a8]
mov eax, 0x445a84
push dword [ebp - 0x6484]
cmove eax, edx
push dword [ebp - 0x6488]
push dword [ebp - 0x648c]
push dword [ebp - 0x6490]
push dword [ebp - 0x6494]
push dword [ebp - 0x6498]
push dword [ebp - 0x64a0]
push dword [ebp - 0x64ac]
push dword [ebp - 0x64b0]
push eax
push str.OK_r_n_r_n_s__lld__d__lld__lld__lld__lld__s_r_n
push esi
call fcn.00401480
mov edx, dword [ebp - 0x65bc]
add esp, 0x38
mov edi, dword [ebp - 0x65dc]
mov ecx, edi
lea edx, [edx + 0x18]
call fcn.00416840
mov ecx, esi
mov dword [ebp - 0x65c4], 1
add esp, 4
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41a6c0
push 4
lea eax, [ebp - 0x65c4]
sub ecx, edx
push eax
push ecx
mov ecx, dword [edi + 0x58]
push esi
push edi
call fcn.00416110
lea ecx, [ebp - 0x6448]
mov esi, eax
call fcn.00403680
mov eax, esi
jmp 0x41aa9e
push 4
push str.READ
push esi
call fcn.00424470
add esp, 0xc
test eax, eax
jne 0x41a87d
push str.Path
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65d4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
push 0x2000
lea eax, [ebp - 0x4418]
push 0
push eax
call fcn.0041ea80
add esi, 0x28
mov dword [ebp - 0x65c4], 0
add esp, 0xc
cmp dword [esi + 0x14], 0x10
jb 0x41a76e
mov esi, dword [esi]
mov ecx, dword [ebp - 0x65c0]
lea eax, [ebp - 0x65c4]
push eax
lea eax, [ebp - 0x4418]
push eax
push esi
call fcn.00418310
push str.ReadOffset
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65d4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
add esi, 0x28
cmp dword [esi + 0x14], 0x10
jb 0x41a7cd
mov esi, dword [esi]
push esi
call fcn.00424296
mov ecx, edx
mov dword [ebp - 0x65ec], eax
add esp, 4
mov dword [ebp - 0x65d4], ecx
test ecx, ecx
jg 0x41a7f6
jl 0x41aa9b
test eax, eax
jb 0x41aa9b
push str.ReadLength
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65fc]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
add esi, 0x28
cmp dword [esi + 0x14], 0x10
jb 0x41a83b
mov esi, dword [esi]
push esi
call fcn.00424347
add esp, 4
test eax, eax
js 0x41aa9b
mov edi, dword [ebp - 0x65dc]
mov ecx, dword [ebp - 0x65c0]
push eax
push dword [ebp - 0x65d4]
lea eax, [ebp - 0x4418]
push dword [ebp - 0x65ec]
push dword [ebp - 0x65c4]
push eax
push edi
call fcn.0041aac0
jmp 0x41aa9e
push 5
push str.WRITE
push esi
call fcn.00424470
add esp, 0xc
test eax, eax
jne 0x41aa9b
push str.Path
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65ec]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
push 0x2000
lea eax, [ebp - 0x6418]
push 0
push eax
call fcn.0041ea80
lea eax, [esi + 0x28]
mov dword [ebp - 0x65d0], 0
add esp, 0xc
mov dword [ebp - 0x65c4], eax
cmp dword [eax + 0x14], 0x10
jb 0x41a900
mov eax, dword [eax]
mov esi, dword [ebp - 0x65c0]
lea ecx, [ebp - 0x65d0]
push ecx
lea ecx, [ebp - 0x6418]
push ecx
push eax
mov ecx, esi
call fcn.00418310
mov eax, dword [ebp - 0x65d0]
test eax, eax
je 0x41a95a
cmp byte [eax + 0x410], 0
jne 0x41a9a8
mov eax, dword [ebp - 0x65bc]
push 1
add eax, 0x2022
push str._ER_r_bErrno:__d_r_n_r_n
push eax
call fcn.00401480
mov ecx, dword [ebp - 0x65dc]
add esp, 0xc
call fcn.004189f0
jmp 0x41aa9e
mov eax, dword [ebp - 0x65c4]
cmp dword [eax + 0x14], 0x10
jb 0x41a968
mov eax, dword [eax]
push eax
mov ecx, esi
call fcn.00418650
test al, al
jne 0x41a9a8
mov eax, dword [ebp - 0x65bc]
push 1
add eax, 0x2022
push str._ER_r_nErrno:__d_r_n_r_n
push eax
call fcn.00401480
mov eax, dword [ebp - 0x65c4]
add esp, 0xc
cmp dword [eax + 0x14], 0x10
jb 0x41a99d
mov eax, dword [eax]
push eax
push str.WRITE
jmp 0x419721
push str.WriteOffset
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65c4]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
add esi, 0x28
cmp dword [esi + 0x14], 0x10
jb 0x41a9ed
mov esi, dword [esi]
push esi
call fcn.00424296
mov ecx, edx
mov dword [ebp - 0x65ec], eax
add esp, 4
mov dword [ebp - 0x65c4], ecx
test ecx, ecx
jg 0x41aa16
jl 0x41aa9b
test eax, eax
jb 0x41aa9b
push str.WriteLength
lea ecx, [ebp - 0x6430]
call fcn.00403740
lea eax, [ebp - 0x6430]
mov ecx, edi
push eax
lea eax, [ebp - 0x65fc]
push eax
call fcn.0040d170
lea ecx, [ebp - 0x6430]
mov esi, dword [eax]
call fcn.00403680
cmp esi, dword [edi]
je 0x41aa9b
add esi, 0x28
cmp dword [esi + 0x14], 0x10
jb 0x41aa57
mov esi, dword [esi]
push esi
call fcn.00424347
add esp, 4
test eax, eax
js 0x41aa9b
push dword [ebx + 0x14]
mov edi, dword [ebp - 0x65dc]
push dword [ebp - 0x65d4]
mov ecx, dword [ebp - 0x65c0]
push eax
push dword [ebp - 0x65c4]
lea eax, [ebp - 0x6418]
push dword [ebp - 0x65ec]
push dword [ebp - 0x65d0]
push eax
push edi
call fcn.0041b0d0
jmp 0x41aa9e
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041be62
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10