Function at 0x4e2530
Capabilities:
Check if file exists
Create directory
Delete file
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f97ed
mov eax, dword fs:[0]
push eax
mov eax, 0x4200
call fcn.004bb0d0
mov eax, dword [0x542af0]
xor eax, ebp
mov dword [ebp - 0x74], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 1
call fcn.00403940
mov dword [ebp - 0x40b4], eax
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x40b8], 0
mov dword [ebp - 0x40b0], fcn.00418130
mov dword [ebp - 0x40ac], fcn.00418120
mov dword [ebp - 0x40a8], fcn.00418130
mov dword [ebp - 0x40a4], fcn.00418120
lea ecx, [ebp + 8]
call sym.QiyiInstaller.exe_public:_enum_eScriptType___thiscall_CScriptModule::Type_void_
push eax
lea eax, [ebp - 0x4098]
push eax
call fcn.00418190
add esp, 8
test eax, eax
je 0x4e2623
mov dword [ebp - 0x413c], str.Can_not_open_input_file
lea ecx, [ebp - 0x413c]
push ecx
lea ecx, [ebp - 0x4138]
call fcn.004b61cc
push 0x523e6c
lea edx, [ebp - 0x4138]
push edx
call fcn.004bb782
mov dword [ebp - 0x4140], 1
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00402ea0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.00402ea0
mov eax, dword [ebp - 0x4140]
jmp 0x4e318d
lea eax, [ebp - 0x40a0]
push eax
call fcn.004183e0
add esp, 4
push 0
lea ecx, [ebp - 0x4094]
push ecx
call fcn.004185f0
add esp, 8
lea edx, [ebp - 0x40a0]
mov dword [ebp - 0x4084], edx
lea eax, [ebp - 0x4094]
push eax
call fcn.00418620
add esp, 4
call fcn.00418650
lea ecx, [ebp - 0x64]
push ecx
call fcn.004189c0
add esp, 4
lea edx, [ebp - 0x40a8]
push edx
lea eax, [ebp - 0x40b0]
push eax
lea ecx, [ebp - 0x4094]
push ecx
lea edx, [ebp - 0x64]
push edx
call fcn.0041aa20
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4e2f00
cmp dword [ebp - 0x10], 0
jne 0x4e2f00
mov dword [ebp - 0x40c8], 0xffffffff
mov dword [ebp - 0x40c4], 0
mov dword [ebp - 0x40cc], 0
mov dword [ebp - 0x40c0], 0
jmp 0x4e26e0
mov eax, dword [ebp - 0x40c0]
add eax, 1
mov dword [ebp - 0x40c0], eax
mov ecx, dword [ebp - 0x40c0]
cmp ecx, dword [ebp - 0x48]
jae 0x4e2ee9
mov dword [ebp - 0x40dc], 0
mov dword [ebp - 0x40ec], 0
mov dword [ebp - 0x40e8], 0
mov edx, dword [ebp - 0x40c0]
shl edx, 5
add edx, dword [ebp - 0x54]
mov dword [ebp - 0x40d8], edx
push 0
mov eax, dword [ebp - 0x40c0]
push eax
lea ecx, [ebp - 0x64]
push ecx
call fcn.00419e30
add esp, 0xc
mov dword [ebp - 0x40e4], eax
mov edx, dword [ebp - 0x40e4]
cmp edx, dword [ebp - 0x40b8]
jbe 0x4e278a
mov eax, dword [ebp - 0x6c]
push eax
push 0
call fcn.00418120
add esp, 8
mov ecx, dword [ebp - 0x40e4]
mov dword [ebp - 0x40b8], ecx
mov edx, dword [ebp - 0x40b8]
shl edx, 1
push edx
push 0
call fcn.00418130
add esp, 8
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0
jne 0x4e278a
mov dword [ebp - 0x10], 2
jmp 0x4e2ee9
mov eax, dword [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0x40c0]
push ecx
lea edx, [ebp - 0x64]
push edx
call fcn.00419e30
add esp, 0xc
cmp dword [ebp - 0x10], 0
je 0x4e27ac
jmp 0x4e2ee9
mov eax, dword [ebp - 0x40d8]
movzx ecx, byte [eax + 0x19]
test ecx, ecx
jne 0x4e2813
lea edx, [ebp - 0x40a8]
push edx
lea eax, [ebp - 0x40b0]
push eax
lea ecx, [ebp - 0x40e8]
push ecx
lea edx, [ebp - 0x40ec]
push edx
lea eax, [ebp - 0x40cc]
push eax
lea ecx, [ebp - 0x40c4]
push ecx
lea edx, [ebp - 0x40c8]
push edx
mov eax, dword [ebp - 0x40c0]
push eax
lea ecx, [ebp - 0x4094]
push ecx
lea edx, [ebp - 0x64]
push edx
call fcn.0041aa60
add esp, 0x28
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x4e2813
jmp 0x4e2ee9
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x40e0], eax
mov ecx, dword [ebp - 0x40e0]
mov dword [ebp - 0x40d4], ecx
mov dword [ebp - 0x40f4], 0
jmp 0x4e2843
mov edx, dword [ebp - 0x40f4]
add edx, 1
mov dword [ebp - 0x40f4], edx
mov eax, dword [ebp - 0x40f4]
mov ecx, dword [ebp - 0x40e0]
movzx edx, word [ecx + eax*2]
test edx, edx
je 0x4e28a4
mov eax, dword [ebp - 0x40f4]
mov ecx, dword [ebp - 0x40e0]
movzx edx, word [ecx + eax*2]
cmp edx, 0x2f
jne 0x4e28a2
xor eax, eax
mov ecx, dword [ebp - 0x40f4]
mov edx, dword [ebp - 0x40e0]
mov word [edx + ecx*2], ax
push 0
mov eax, dword [ebp - 0x40e0]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ecx, 0x5c
mov edx, dword [ebp - 0x40f4]
mov eax, dword [ebp - 0x40e0]
mov word [eax + edx*2], cx
jmp 0x4e2834
mov ecx, dword [ebp - 0x40d8]
movzx edx, byte [ecx + 0x19]
test edx, edx
je 0x4e28cb
push 0
mov eax, dword [ebp - 0x40d4]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
jmp 0x4e26d1
mov ecx, dword [ebp - 0x40d4]
push ecx
lea edx, [ebp - 0x40d0]
push edx
call fcn.004181b0
add esp, 8
test eax, eax
je 0x4e2dff
lea ecx, [ebp - 0x4100]
call fcn.00402e80
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x40d4]
push eax
lea ecx, [ebp - 0x4104]
call fcn.00403870
mov byte [ebp - 4], 3
cmp dword [ebp - 0x40dc], 0
jne 0x4e2b76
mov dword [ebp - 0x40dc], 1
mov dword [ebp - 0x4108], 1
jmp 0x4e2940
mov ecx, dword [ebp - 0x4108]
add ecx, 1
mov dword [ebp - 0x4108], ecx
cmp dword [ebp - 0x4108], 0xa
jg 0x4e29b6
lea ecx, [ebp - 0x410c]
call fcn.00402e80
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x4108]
push edx
mov eax, dword [ebp - 0x4104]
push eax
push 0x50f018
lea ecx, [ebp - 0x410c]
push ecx
call fcn.004061c0
add esp, 0x10
lea ecx, [ebp - 0x410c]
call sym.QiyiInstaller.exe_public:_enum_eScriptType___thiscall_CScriptModule::Type_void_
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4e29a2
lea ecx, [ebp - 0x410c]
call sym.QiyiInstaller.exe_public:_enum_eScriptType___thiscall_CScriptModule::Type_void_
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x410c]
call fcn.00402ea0
jmp 0x4e2931
mov dword [ebp - 0x4110], 1
jmp 0x4e29d1
mov edx, dword [ebp - 0x4110]
add edx, 1
mov dword [ebp - 0x4110], edx
cmp dword [ebp - 0x4110], 0xa
jg 0x4e2b76
lea ecx, [ebp - 0x4118]
call fcn.00402e80
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x4110]
push eax
mov ecx, dword [ebp - 0x4104]
push ecx
push 0x50f02c
lea edx, [ebp - 0x4118]
push edx
call fcn.004061c0
add esp, 0x10
lea ecx, [ebp - 0x4118]
call sym.QiyiInstaller.exe_public:_enum_eScriptType___thiscall_CScriptModule::Type_void_
push eax
lea ecx, [ebp - 0x4104]
call sym.QiyiInstaller.exe_public:_enum_eScriptType___thiscall_CScriptModule::Type_void_
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov dword [ebp - 0x4114], eax
cmp dword [ebp - 0x4114], 0
je 0x4e2b62
lea eax, [ebp - 0x4104]
push eax
push str.Try_rename_file:
lea ecx, [ebp - 0x4148]
push ecx
call fcn.00404320
add esp, 0xc
mov dword [ebp - 0x41d4], eax
mov edx, dword [ebp - 0x41d4]
mov dword [ebp - 0x41d8], edx
mov byte [ebp - 4], 6
push str._to:
mov eax, dword [ebp - 0x41d8]
push eax
lea ecx, [ebp - 0x414c]
push ecx
call fcn.00404270
add esp, 0xc
mov dword [ebp - 0x41dc], eax
mov edx, dword [ebp - 0x41dc]
mov dword [ebp - 0x41e0], edx
mov byte [ebp - 4], 7
lea eax, [ebp - 0x4118]
push eax
mov ecx, dword [ebp - 0x41e0]
push ecx
lea edx, [ebp - 0x4150]
push edx
call fcn.00406c50
add esp, 0xc
mov dword [ebp - 0x41e4], eax
mov eax, dword [ebp - 0x41e4]
mov dword [ebp - 0x41e8], eax
mov byte [ebp - 4], 8
push ecx
mov ecx, esp
mov dword [ebp - 0x4144], esp
push str._successful__n
mov edx, dword [ebp - 0x41e8]
push edx
push ecx
call fcn.00404270
add esp, 0xc
mov dword [ebp - 0x41ec], eax
mov ecx, 0x547ce0
call fcn.004ea5d0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x4150]
call fcn.00402ea0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x414c]
call fcn.00402ea0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x4148]
call fcn.00402ea0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4118]
call fcn.00402ea0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x4104]
call fcn.00402ea0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4100]
call fcn.00402ea0
jmp 0x4e26ef
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4118]
call fcn.00402ea0
jmp 0x4e29c2
mov dword [ebp - 0x40fc], 0xb
cmp dword [0x547df0], 0
jne 0x4e2c3d
push 0
push str..ocx
lea ecx, [ebp - 0x4100]
call fcn.00403fe0
cmp eax, 0xffffffff
jne 0x4e2bd2
push 0
push str..OCX
lea ecx, [ebp - 0x4100]
call fcn.00403fe0
cmp eax, 0xffffffff
jne 0x4e2bd2
push 0
push 0x50f0a4
lea ecx, [ebp - 0x4100]
call fcn.00403fe0
cmp eax, 0xffffffff
je 0x4e2bf6
mov eax, dword [ebp - 0x40d4]
push eax
mov ecx, dword [0x547d84]
push ecx
push 0x50f0c0
lea edx, [ebp - 0x4100]
push edx
call fcn.004061c0
add esp, 0x10
jmp 0x4e2c18
mov eax, dword [ebp - 0x40d4]
push eax
mov ecx, dword [0x547d84]
push ecx
push 0x50f150
lea edx, [ebp - 0x4100]
push edx
call fcn.004061c0
add esp, 0x10
push 0x45
push 0x50f1bc
lea ecx, [ebp - 0x4100]
call sym.QiyiInstaller.exe_public:_enum_eScriptType___thiscall_CScriptModule::Type_void_
push eax
mov eax, dword [0x547cb0]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0x40fc], eax
cmp dword [ebp - 0x40fc], 0xb
jne 0x4e2cad
mov ecx, dword [ebp - 0x40c0]
add ecx, 1
cmp ecx, dword [ebp - 0x48]
jae 0x4e2c88
mov edx, dword [ebp - 0x40c0]
add edx, 1
mov dword [ebp - 0x40c0], edx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x4104]
call fcn.00402ea0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4100]
call fcn.00402ea0
jmp 0x4e26ef
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x4104]
call fcn.00402ea0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4100]
call fcn.00402ea0
jmp 0x4e2ee9
cmp dword [ebp - 0x40fc], 0xa
je 0x4e2cbf
cmp dword [ebp - 0x40fc], 4
jne 0x4e2ce2
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x4104]
call fcn.00402ea0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4100]
call fcn.00402ea0
jmp 0x4e26ef
lea ecx, [ebp - 0x40f8]
call fcn.00402e80
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x40d4]
push eax
mov ecx, dword [0x547d84]
push ecx
push str.Can_not_open_output_file_:__s_s
lea edx, [ebp - 0x40f8]
push edx
call fcn.004061c0
add esp, 0x10
lea ecx, [ebp - 0x40f8]
call sym.QiyiInstaller.exe_public:_enum_eScriptType___thiscall_CScriptModule::Type_void_
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
jne 0x4e2d33
mov dword [ebp - 0x41f0], 0
jmp 0x4e2d97
mov eax, dword [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 1
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 0x3fffffff
jle 0x4e2d58
mov dword [ebp - 0x41f4], 0
jmp 0x4e2d8b
mov eax, dword [ebp - 0x68]
shl eax, 1
call fcn.004bbd30
mov dword [ebp - 0x41f8], esp
mov ecx, dword [ebp - 0x40b4]
push ecx
mov edx, dword [ebp - 0x68]
shl edx, 1
push edx
mov eax, dword [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x41f8]
push ecx
call fcn.00407950
mov dword [ebp - 0x41f4], eax
mov edx, dword [ebp - 0x41f4]
mov dword [ebp - 0x41f0], edx
mov eax, dword [ebp - 0x41f0]
mov dword [ebp - 0x4160], eax
lea ecx, [ebp - 0x4160]
push ecx
lea ecx, [ebp - 0x415c]
call fcn.004b61cc
push 0x523e6c
lea edx, [ebp - 0x415c]
push edx
call fcn.004bb782
mov dword [ebp - 0x10], 0xb
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x40f8]
call fcn.00402ea0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x4104]
call fcn.00402ea0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4100]
call fcn.00402ea0
jmp 0x4e2ee9
mov eax, dword [ebp - 0x40e8]
mov dword [ebp - 0x40f0], eax
lea ecx, [ebp - 0x40f0]
push ecx
mov edx, dword [ebp - 0x40c4]
add edx, dword [ebp - 0x40ec]
push edx
lea eax, [ebp - 0x40d0]
push eax
call fcn.00418280
add esp, 0xc
test eax, eax
jne 0x4e2e40
mov ecx, dword [ebp - 0x40f0]
cmp ecx, dword [ebp - 0x40e8]
je 0x4e2e76
mov dword [ebp - 0x4170], str.Can_not_write_output_file__Decode7z
lea edx, [ebp - 0x4170]
push edx
lea ecx, [ebp - 0x416c]
call fcn.004b61cc
push 0x523e6c
lea eax, [ebp - 0x416c]
push eax
call fcn.004bb782
mov dword [ebp - 0x10], 0xb
jmp 0x4e2ee9
lea ecx, [ebp - 0x40d0]
push ecx
call fcn.004181d0
add esp, 4
test eax, eax
je 0x4e2ebf
mov dword [ebp - 0x4180], str.Can_not_close_output_file__Decode7z
lea edx, [ebp - 0x4180]
push edx
lea ecx, [ebp - 0x417c]
call fcn.004b61cc
push 0x523e6c
lea eax, [ebp - 0x417c]
push eax
call fcn.004bb782
mov dword [ebp - 0x10], 0xb
jmp 0x4e2ee9
mov ecx, dword [ebp - 0x40d8]
movzx edx, byte [ecx + 0x1d]
test edx, edx
je 0x4e2ee4
mov eax, dword [ebp - 0x40d8]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp - 0x40d4]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x4e26d1
mov eax, dword [ebp - 0x40c4]
push eax
lea ecx, [ebp - 0x40b0]
push ecx
call dword [ebp - 0x40ac]
add esp, 8
lea edx, [ebp - 0x40b0]
push edx
lea eax, [ebp - 0x64]
push eax
call fcn.004189f0
add esp, 8
mov ecx, dword [ebp - 0x6c]
push ecx
push 0
call fcn.00418120
add esp, 8
lea edx, [ebp - 0x4098]
push edx
call fcn.004181d0
add esp, 4
cmp dword [ebp - 0x10], 0
jne 0x4e2f89
push ecx
mov ecx, esp
mov dword [ebp - 0x4184], esp
push str.Everything_is_Ok__Decode7z
call fcn.00403870
mov dword [ebp - 0x41fc], eax
mov ecx, 0x547ce0
call fcn.004ea5d0
mov dword [ebp - 0x4188], 0
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00402ea0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.00402ea0
mov eax, dword [ebp - 0x4188]
jmp 0x4e318d
cmp dword [ebp - 0x10], 4
jne 0x4e2fc1
mov dword [ebp - 0x4198], str.Decoder_doesnt_support_this_archive__Decode7z
lea eax, [ebp - 0x4198]
push eax
lea ecx, [ebp - 0x4194]
call fcn.004b61cc
push 0x523e6c
lea ecx, [ebp - 0x4194]
push ecx
call fcn.004bb782
jmp 0x4e3162
cmp dword [ebp - 0x10], 2
jne 0x4e2ff9
mov dword [ebp - 0x41a8], str.Can_not_allocate_memory__Decode7z
lea edx, [ebp - 0x41a8]
push edx
lea ecx, [ebp - 0x41a4]
call fcn.004b61cc
push 0x523e6c
lea eax, [ebp - 0x41a4]
push eax
call fcn.004bb782
jmp 0x4e3162
cmp dword [ebp - 0x10], 3
jne 0x4e3031
mov dword [ebp - 0x41b8], str.CRC_error__Decode7z
lea ecx, [ebp - 0x41b8]
push ecx
lea ecx, [ebp - 0x41b4]
call fcn.004b61cc
push 0x523e6c
lea edx, [ebp - 0x41b4]
push edx
call fcn.004bb782
jmp 0x4e3162
lea ecx, [ebp - 0x412c]
call fcn.00402e80
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x10]
push eax
push str.Decode7z_Failed_Erorr_Code__d
lea ecx, [ebp - 0x412c]
push ecx
call fcn.004061c0
add esp, 0xc
push ecx
mov ecx, esp
mov dword [ebp - 0x41bc], esp
lea edx, [ebp - 0x412c]
push edx
call fcn.004020d0
mov dword [ebp - 0x4200], eax
mov ecx, 0x547ce0
call fcn.004ea5d0
call fcn.00403940
mov dword [ebp - 0x4124], eax
lea ecx, [ebp - 0x412c]
call sym.QiyiInstaller.exe_public:_enum_eScriptType___thiscall_CScriptModule::Type_void_
mov dword [ebp - 0x4120], eax
cmp dword [ebp - 0x4120], 0
jne 0x4e30ae
mov dword [ebp - 0x4204], 0
jmp 0x4e3124
mov eax, dword [ebp - 0x4120]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 1
mov dword [ebp - 0x411c], eax
cmp dword [ebp - 0x411c], 0x3fffffff
jle 0x4e30dc
mov dword [ebp - 0x4208], 0
jmp 0x4e3118
mov eax, dword [ebp - 0x411c]
shl eax, 1
call fcn.004bbd30
mov dword [ebp - 0x420c], esp
mov ecx, dword [ebp - 0x4124]
push ecx
mov edx, dword [ebp - 0x411c]
shl edx, 1
push edx
mov eax, dword [ebp - 0x4120]
push eax
mov ecx, dword [ebp - 0x420c]
push ecx
call fcn.00407950
mov dword [ebp - 0x4208], eax
mov edx, dword [ebp - 0x4208]
mov dword [ebp - 0x4204], edx
mov eax, dword [ebp - 0x4204]
mov dword [ebp - 0x41cc], eax
lea ecx, [ebp - 0x41cc]
push ecx
lea ecx, [ebp - 0x41c8]
call fcn.004b61cc
push 0x523e6c
lea edx, [ebp - 0x41c8]
push edx
call fcn.004bb782
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x412c]
call fcn.00402ea0
mov dword [ebp - 0x41d0], 1
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00402ea0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.00402ea0
mov eax, dword [ebp - 0x41d0]
lea esp, [ebp - 0x4210]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x74]
xor ecx, ebp
call fcn.004b5b83
mov esp, ebp
pop ebp
ret