Function at 0x4156e0
Capabilities:
Check if file exists
Create directory
Delete file
Move file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c7f18
mov eax, dword fs:[0]
push eax
sub esp, 0x7fc
mov eax, dword [0x50545c]
xor eax, ebp
mov dword [ebp - 0x18], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x7ac], ecx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0042f090
add esp, 8
movzx edx, al
test edx, edx
jne 0x415752
cmp dword [ebp + 0x14], 0
je 0x41574b
cmp dword [ebp + 0x10], 0
je 0x41574b
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
push str.CEstArchieve::ExtractArch2_Call_UnzipFile_Fail__Source_File:__s__Target_Path:__s.
mov edx, dword [ebp + 0x10]
push edx
call dword [ebp + 0x14]
add esp, 0x10
xor eax, eax
jmp 0x416319
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
push str.CEstArchieve::ExtractArch2___srcpath:__s__destpath:__s_r_n
push str.CEstArchieve::ExtractArch2
push 0x1a6
push 8
call fcn.00424f80
push eax
call fcn.004247e0
add esp, 0x1c
mov edx, dword [ebp + 0xc]
push edx
lea ecx, [ebp - 0x34]
call fcn.00416560
mov dword [ebp - 4], 0
push str.tttt.pack.tmp
call fcn.004939fc
add esp, 4
mov dword [ebp - 0x700], eax
mov eax, dword [ebp - 0x700]
push eax
push str.tttt.pack.tmp
lea ecx, [ebp - 0x34]
call fcn.0041c6c0
mov ecx, dword [ebp + 0xc]
push ecx
lea ecx, [ebp - 0x50]
call fcn.00416560
mov byte [ebp - 4], 1
mov dword [ebp - 0x10], 0
cmp dword [ebp - 0x1c], 8
jb 0x4157db
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x7b0], edx
jmp 0x4157e4
lea eax, [ebp - 0x30]
mov dword [ebp - 0x7b0], eax
push 0
mov ecx, dword [ebp - 0x7b0]
push ecx
mov ecx, dword [ebp - 0x7ac]
call fcn.00416340
mov edx, dword [ebp - 0x7ac]
cmp dword [edx + 0x10], 0xffffffff
jne 0x4158aa
cmp dword [ebp - 0x1c], 8
jb 0x415819
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x7b4], eax
jmp 0x415822
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x7b4], ecx
mov edx, dword [ebp - 0x7b4]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp + 0x14], 0
je 0x415872
cmp dword [ebp + 0x10], 0
je 0x415872
cmp dword [ebp - 0x1c], 8
jb 0x41584c
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x7b8], eax
jmp 0x415855
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x7b8], ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp - 0x7b8]
push edx
push str.CEstArchieve::ExtractArch2_Call_myOpenFile_Fail__File:__s__Error:__d.
mov eax, dword [ebp + 0x10]
push eax
call dword [ebp + 0x14]
add esp, 0x10
mov dword [ebp - 0x6e4], 0
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x50]
call fcn.0041aa50
mov dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x34]
call fcn.0041aa50
mov eax, dword [ebp - 0x6e4]
jmp 0x416319
push 8
mov ecx, dword [ebp - 0x7ac]
add ecx, 4
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov ecx, dword [ebp - 0x7ac]
call fcn.004163a0
test eax, eax
jne 0x41596f
cmp dword [ebp - 0x1c], 8
jb 0x4158de
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x7bc], eax
jmp 0x4158e7
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x7bc], ecx
mov edx, dword [ebp - 0x7bc]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp + 0x14], 0
je 0x415937
cmp dword [ebp + 0x10], 0
je 0x415937
cmp dword [ebp - 0x1c], 8
jb 0x415911
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x7c0], eax
jmp 0x41591a
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x7c0], ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp - 0x7c0]
push edx
push str.CEstArchieve::ExtractArch2_Call_myReadFile_Fail__File:__s__Error:__d.
mov eax, dword [ebp + 0x10]
push eax
call dword [ebp + 0x14]
add esp, 0x10
mov dword [ebp - 0x6e8], 0
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x50]
call fcn.0041aa50
mov dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x34]
call fcn.0041aa50
mov eax, dword [ebp - 0x6e8]
jmp 0x416319
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x7ac]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x7ac]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x14], ecx
mov edx, dword [ebp - 0x10]
add edx, 8
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x7ac]
mov ecx, dword [eax + 8]
push ecx
push str.CEstArchieve::ExtractArch2___filenumber:__d_r_n
push str.CEstArchieve::ExtractArch2
push 0x1cc
push 8
call fcn.00424f80
push eax
call fcn.004247e0
add esp, 0x18
mov dword [ebp - 0x58], 1
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x54], edx
lea eax, [ebp - 0x719]
mov dword [ebp - 0x718], eax
push 0
push 0
lea ecx, [ebp - 0x74]
call fcn.0041aa50
mov byte [ebp - 4], 2
mov dword [ebp - 0x78], 0
jmp 0x4159fb
mov ecx, dword [ebp - 0x78]
add ecx, 1
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x7ac]
mov eax, dword [ebp - 0x78]
cmp eax, dword [edx + 0x14]
jge 0x416276
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x4a8], 0
mov dword [ebp - 0x294], 0
push 4
lea ecx, [ebp - 0x4a8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov ecx, dword [ebp - 0x7ac]
call fcn.004163a0
test eax, eax
jne 0x415a96
mov dword [ebp - 0x58], 0
cmp dword [ebp + 0x14], 0
je 0x415a91
cmp dword [ebp + 0x10], 0
je 0x415a91
cmp dword [ebp - 0x1c], 8
jb 0x415a6b
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x7c4], eax
jmp 0x415a74
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x7c4], ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp - 0x7c4]
push edx
push str.CEstArchieve::ExtractArch2_Read_File_Name_Length_Fail__File:__s__Error:__d.
mov eax, dword [ebp + 0x10]
push eax
call dword [ebp + 0x14]
add esp, 0x10
jmp 0x416276
mov ecx, dword [ebp - 0x10]
add ecx, 4
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x4a8]
shl edx, 1
push edx
lea eax, [ebp - 0x4a4]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov ecx, dword [ebp - 0x7ac]
call fcn.004163a0
test eax, eax
jne 0x415b11
mov dword [ebp - 0x58], 0
cmp dword [ebp + 0x14], 0
je 0x415b0c
cmp dword [ebp + 0x10], 0
je 0x415b0c
cmp dword [ebp - 0x1c], 8
jb 0x415ae6
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x7c8], edx
jmp 0x415aef
lea eax, [ebp - 0x30]
mov dword [ebp - 0x7c8], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, dword [ebp - 0x7c8]
push ecx
push str.CEstArchieve::ExtractArch2_Read_File_Name_Fail__File:__s__Error:__d.
mov edx, dword [ebp + 0x10]
push edx
call dword [ebp + 0x14]
add esp, 0x10
jmp 0x416276
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [ebp - 0x10]
lea edx, [ecx + eax*2]
mov dword [ebp - 0x10], edx
push 4
lea eax, [ebp - 0x28c]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov ecx, dword [ebp - 0x7ac]
call fcn.004163a0
test eax, eax
jne 0x415b8b
mov dword [ebp - 0x58], 0
cmp dword [ebp + 0x14], 0
je 0x415b86
cmp dword [ebp + 0x10], 0
je 0x415b86
cmp dword [ebp - 0x1c], 8
jb 0x415b60
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x7cc], edx
jmp 0x415b69
lea eax, [ebp - 0x30]
mov dword [ebp - 0x7cc], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, dword [ebp - 0x7cc]
push ecx
push str.CEstArchieve::ExtractArch2_Read_File_Size_Fail__File:__s__Error:__d.
mov edx, dword [ebp + 0x10]
push edx
call dword [ebp + 0x14]
add esp, 0x10
jmp 0x416276
mov eax, dword [ebp - 0x10]
add eax, 4
mov dword [ebp - 0x10], eax
push 4
lea ecx, [ebp - 0x294]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov ecx, dword [ebp - 0x7ac]
call fcn.004163a0
test eax, eax
jne 0x415bff
mov dword [ebp - 0x58], 0
cmp dword [ebp + 0x14], 0
je 0x415bfa
cmp dword [ebp + 0x10], 0
je 0x415bfa
cmp dword [ebp - 0x1c], 8
jb 0x415bd4
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x7d0], eax
jmp 0x415bdd
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x7d0], ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp - 0x7d0]
push edx
push str.CEstArchieve::ExtractArch2_Read_File_Offset_Fail__File:__s__Error:__d.
mov eax, dword [ebp + 0x10]
push eax
call dword [ebp + 0x14]
add esp, 0x10
jmp 0x416276
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x28c]
push edx
lea eax, [ebp - 0x4a4]
push eax
mov ecx, dword [ebp - 0x78]
push ecx
push str.CEstArchieve::ExtractArch2___Index:__d__FileName:__s__FileSize:__d__Offset:__x_r_n
push str.CEstArchieve::ExtractArch2
push 0x1fd
push 8
call fcn.00424f80
push eax
call fcn.004247e0
add esp, 0x24
mov edx, dword [ebp - 0x10]
add edx, 4
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x294]
mov dword [ebp - 0x54], eax
lea ecx, [ebp - 0x4a4]
mov dword [ebp - 0x298], ecx
lea edx, [ebp - 0x4a4]
push edx
call fcn.004939fc
add esp, 4
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x80], 1
mov dword [ebp - 0x4ac], 0
jmp 0x415c89
mov eax, dword [ebp - 0x4ac]
add eax, 1
mov dword [ebp - 0x4ac], eax
mov ecx, dword [ebp - 0x4ac]
cmp ecx, dword [ebp - 0x288]
jge 0x415e69
mov edx, dword [ebp - 0x4ac]
lea eax, [ebp + edx*2 - 0x4a4]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0x84]
movzx edx, word [ecx]
cmp edx, 0x5c
jne 0x415e64
mov eax, dword [ebp - 0x4ac]
push eax
lea ecx, [ebp - 0x4a4]
push ecx
push 0xff
lea edx, [ebp - 0x6ac]
push edx
call fcn.004951c9
add esp, 0x10
xor eax, eax
mov ecx, dword [ebp - 0x4ac]
mov word [ebp + ecx*2 - 0x6ac], ax
mov edx, dword [ebp + 0xc]
push edx
call fcn.004939fc
add esp, 4
mov dword [ebp - 0x720], eax
mov eax, dword [ebp - 0x720]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
lea ecx, [ebp - 0x74]
call fcn.0041c950
lea edx, [ebp - 0x6ac]
push edx
call fcn.004939fc
add esp, 4
mov dword [ebp - 0x730], eax
mov eax, dword [ebp - 0x730]
push eax
lea ecx, [ebp - 0x6ac]
push ecx
lea ecx, [ebp - 0x74]
call fcn.0041c6c0
cmp dword [ebp - 0x5c], 8
jb 0x415d53
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x7d4], edx
jmp 0x415d5c
lea eax, [ebp - 0x70]
mov dword [ebp - 0x7d4], eax
mov ecx, dword [ebp - 0x7d4]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
jne 0x415e43
cmp dword [ebp - 0x5c], 8
jb 0x415d87
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x7d8], edx
jmp 0x415d90
lea eax, [ebp - 0x70]
mov dword [ebp - 0x7d8], eax
push 0
mov ecx, dword [ebp - 0x7d8]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
jne 0x415dbc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x415dbc
mov dword [ebp - 0x80], 1
cmp dword [ebp - 0x80], 0
jne 0x415e07
cmp dword [ebp + 0x14], 0
je 0x415e05
cmp dword [ebp + 0x10], 0
je 0x415e05
cmp dword [ebp - 0x5c], 8
jb 0x415ddf
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x7dc], edx
jmp 0x415de8
lea eax, [ebp - 0x70]
mov dword [ebp - 0x7dc], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, dword [ebp - 0x7dc]
push ecx
push str.CEstArchieve::ExtractArch2_Create_Directory_Fail__Directory:__s__Error:__d.
mov edx, dword [ebp + 0x10]
push edx
call dword [ebp + 0x14]
add esp, 0x10
jmp 0x415e43
cmp dword [ebp + 0x14], 0
je 0x415e43
cmp dword [ebp + 0x10], 0
je 0x415e43
cmp dword [ebp - 0x5c], 8
jb 0x415e24
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x7e0], eax
jmp 0x415e2d
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x7e0], ecx
mov edx, dword [ebp - 0x7e0]
push edx
push str.CEstArchieve::ExtractArch2_Create_Directory_Succeed__Directory:__s.
mov eax, dword [ebp + 0x10]
push eax
call dword [ebp + 0x14]
add esp, 0xc
mov ecx, dword [0x4d5584]
push ecx
push 0
lea edx, [ebp - 0x50]
push edx
lea ecx, [ebp - 0x74]
call fcn.0041c810
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x298], eax
jmp 0x415c7a
cmp dword [ebp - 0x80], 0
jne 0x415e7b
mov dword [ebp - 0x58], 0
jmp 0x416276
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004939fc
add esp, 4
mov dword [ebp - 0x74c], eax
mov edx, dword [ebp - 0x74c]
push edx
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x74]
call fcn.0041c950
lea ecx, [ebp - 0x4a4]
push ecx
call fcn.004939fc
add esp, 4
mov dword [ebp - 0x75c], eax
mov edx, dword [ebp - 0x75c]
push edx
lea eax, [ebp - 0x4a4]
push eax
lea ecx, [ebp - 0x74]
call fcn.0041c6c0
cmp dword [ebp - 0x5c], 8
jb 0x415edc
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x7e4], ecx
jmp 0x415ee5
lea edx, [ebp - 0x70]
mov dword [ebp - 0x7e4], edx
mov eax, dword [ebp - 0x7e4]
push eax
push str.CEstArchieve::ExtractArch2___tempFilename:__s_r_n
push str.CEstArchieve::ExtractArch2
push 0x234
push 8
call fcn.00424f80
push eax
call fcn.004247e0
add esp, 0x18
cmp dword [ebp - 0x5c], 8
jb 0x415f1c
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x7e8], ecx
jmp 0x415f25
lea edx, [ebp - 0x70]
mov dword [ebp - 0x7e8], edx
push 0
push 0x80
push 2
push 0
push 0
push 0xc0000000
mov eax, dword [ebp - 0x7e8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x290], eax
cmp dword [ebp - 0x290], 0xffffffff
jne 0x415fa2
mov dword [ebp - 0x58], 0
cmp dword [ebp + 0x14], 0
je 0x415f9d
cmp dword [ebp + 0x10], 0
je 0x415f9d
cmp dword [ebp - 0x5c], 8
jb 0x415f77
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x7ec], ecx
jmp 0x415f80
lea edx, [ebp - 0x70]
mov dword [ebp - 0x7ec], edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x7ec]
push eax
push str.CEstArchieve::ExtractArch2_Create_File_Fail__File:__s__Error:__d.
mov ecx, dword [ebp + 0x10]
push ecx
call dword [ebp + 0x14]
add esp, 0x10
jmp 0x416276
mov dword [ebp - 0x7c], 0
mov edx, dword [ebp - 0x7c]
cmp edx, dword [ebp - 0x28c]
jge 0x416228
mov eax, dword [ebp - 0x54]
add eax, 0x200
sub eax, dword [ebp - 0x294]
cmp eax, dword [ebp - 0x28c]
jle 0x41610b
mov ecx, dword [ebp - 0x28c]
sub ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x6b0], ecx
mov edx, dword [ebp - 0x6b0]
push edx
lea eax, [ebp - 0x284]
push eax
mov ecx, dword [ebp - 0x54]
push ecx
mov ecx, dword [ebp - 0x7ac]
call fcn.004163a0
test eax, eax
jne 0x416051
mov dword [ebp - 0x58], 0
cmp dword [ebp + 0x14], 0
je 0x41604c
cmp dword [ebp + 0x10], 0
je 0x41604c
cmp dword [ebp - 0x5c], 8
jb 0x416026
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x7f0], edx
jmp 0x41602f
lea eax, [ebp - 0x70]
mov dword [ebp - 0x7f0], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, dword [ebp - 0x7f0]
push ecx
push str.CEstArchieve::ExtractArch2_Read_File_Fail__File:__s__Error:__d.
mov edx, dword [ebp + 0x10]
push edx
call dword [ebp + 0x14]
add esp, 0x10
jmp 0x416228
push 0x14
push 0
lea eax, [ebp - 0x6c4]
push eax
call fcn.004931a0
add esp, 0xc
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x6bc], ecx
lea edx, [ebp - 0x6c4]
push edx
lea eax, [ebp - 0x6c8]
push eax
mov ecx, dword [ebp - 0x6b0]
push ecx
lea edx, [ebp - 0x284]
push edx
mov eax, dword [ebp - 0x290]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x4160e9
mov dword [ebp - 0x58], 0
cmp dword [ebp + 0x14], 0
je 0x4160e4
cmp dword [ebp + 0x10], 0
je 0x4160e4
cmp dword [ebp - 0x5c], 8
jb 0x4160be
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x7f4], ecx
jmp 0x4160c7
lea edx, [ebp - 0x70]
mov dword [ebp - 0x7f4], edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x7f4]
push eax
push str.CEstArchieve::ExtractArch2_Write_File_Fail__File:__s__Error:__d.
mov ecx, dword [ebp + 0x10]
push ecx
call dword [ebp + 0x14]
add esp, 0x10
jmp 0x416228
mov edx, dword [ebp - 0x7c]
add edx, dword [ebp - 0x6b0]
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x6b0]
mov dword [ebp - 0x54], eax
jmp 0x416228
push 0x200
lea ecx, [ebp - 0x284]
push ecx
mov edx, dword [ebp - 0x54]
push edx
mov ecx, dword [ebp - 0x7ac]
call fcn.004163a0
test eax, eax
jne 0x416179
mov dword [ebp - 0x58], 0
cmp dword [ebp + 0x14], 0
je 0x416174
cmp dword [ebp + 0x10], 0
je 0x416174
cmp dword [ebp - 0x5c], 8
jb 0x41614e
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x7f8], eax
jmp 0x416157
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x7f8], ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp - 0x7f8]
push edx
push str.CEstArchieve::ExtractArch2_Read_File_Fail__File:__s__Error:__d.
mov eax, dword [ebp + 0x10]
push eax
call dword [ebp + 0x14]
add esp, 0x10
jmp 0x416228
push 0x14
push 0
lea ecx, [ebp - 0x6dc]
push ecx
call fcn.004931a0
add esp, 0xc
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x6d4], edx
lea eax, [ebp - 0x6dc]
push eax
lea ecx, [ebp - 0x6e0]
push ecx
push 0x200
lea edx, [ebp - 0x284]
push edx
mov eax, dword [ebp - 0x290]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x41620c
mov dword [ebp - 0x58], 0
cmp dword [ebp + 0x14], 0
je 0x41620a
cmp dword [ebp + 0x10], 0
je 0x41620a
cmp dword [ebp - 0x5c], 8
jb 0x4161e4
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x7fc], ecx
jmp 0x4161ed
lea edx, [ebp - 0x70]
mov dword [ebp - 0x7fc], edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x7fc]
push eax
push str.CEstArchieve::ExtractArch2_Write_File_Fail__File:__s__Error:__d.
mov ecx, dword [ebp + 0x10]
push ecx
call dword [ebp + 0x14]
add esp, 0x10
jmp 0x416228
mov edx, dword [ebp - 0x7c]
add edx, 0x200
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x54]
add eax, 0x200
mov dword [ebp - 0x54], eax
jmp 0x415fa9
mov ecx, dword [ebp - 0x290]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0x14], 0
je 0x416271
cmp dword [ebp + 0x10], 0
je 0x416271
cmp dword [ebp - 0x5c], 8
jb 0x416252
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x800], edx
jmp 0x41625b
lea eax, [ebp - 0x70]
mov dword [ebp - 0x800], eax
mov ecx, dword [ebp - 0x800]
push ecx
push 0x4d5938
mov edx, dword [ebp + 0x10]
push edx
call dword [ebp + 0x14]
add esp, 0xc
jmp 0x4159f2
mov ecx, dword [ebp - 0x7ac]
call fcn.00416490
cmp dword [ebp - 0x1c], 8
jb 0x416292
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x804], eax
jmp 0x41629b
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x804], ecx
mov edx, dword [ebp - 0x804]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x4162d7
cmp dword [ebp - 0x1c], 8
jb 0x4162bd
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x808], eax
jmp 0x4162c6
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x808], ecx
push 4
push 0
mov edx, dword [ebp - 0x808]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x6ec], eax
mov byte [ebp - 4], 1
push 0
push 1
lea ecx, [ebp - 0x74]
call fcn.0041aa50
mov byte [ebp - 4], 0
push 0
push 1
lea ecx, [ebp - 0x50]
call fcn.0041aa50
mov dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x34]
call fcn.0041aa50
mov eax, dword [ebp - 0x6ec]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.0049318c
mov esp, ebp
pop ebp
ret 0x10