Function at 0x420240
Capabilities:
Check if file exists
Copy file
Delete file

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 0x5d659a
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xd0
mov eax, dword [0x693f30]
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 - 0xdc], ecx
mov edi, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0xe0], eax
cmp dword [edi + 0x14], 8
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0xcc], eax
mov eax, edi
mov dword [ebp - 0xc4], esi
mov byte [ebp - 0xbd], 1
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xd8], 0
jb 0x4202c6
mov eax, dword [edi]
lea ecx, [ebp - 0xd8]
push ecx
push 0
push eax
call fcn.0045ea90
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4205ea
mov ecx, dword [ebp - 0xd8]
lea esi, [ebp - 0x17]
mov dword [ebp - 0xcc], ecx
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0xcc]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x4202f5
push ecx
lea eax, [ebp - 0x17]
push eax
push esi
lea ecx, [ebp - 0x8c]
call fcn.004073b0
lea eax, [ebp - 0xbc]
mov dword [ebp - 4], 0
push edi
push eax
call fcn.00456640
add esp, 8
push 0x10
push str.Create_zip_path:
push 0
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0042a1d0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x44], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x34], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x30]
mov eax, edx
mov ecx, dword [ebp - 0x34]
sub eax, ecx
push 0xd
push str.fails__error:
cmp eax, 0xd
jb 0x4203d6
cmp edx, 0x10
lea esi, [ebp - 0x44]
lea eax, [ecx + 0xd]
cmovae esi, dword [ebp - 0x44]
add esi, ecx
mov dword [ebp - 0x34], eax
push esi
call fcn.005a4460
add esp, 0xc
mov byte [esi + 0xd], 0
lea eax, [ebp - 0x44]
jmp 0x4203e6
push dword [ebp - 0xc4]
lea ecx, [ebp - 0x44]
push 0xd
call fcn.00406db0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x74], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x64], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x74]
push eax
push dword [ebp - 0xc4]
lea ecx, [ebp - 0xa4]
call fcn.00429bf0
mov esi, dword [ebp - 0xdc]
lea eax, [ebp - 0xa4]
sub esi, 0xffffff80
mov byte [ebp - 4], 8
push eax
mov ecx, esi
call fcn.004059f0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x90]
cmp ecx, 0x10
jb 0x420481
mov edx, dword [ebp - 0xa4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x420477
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bad
push ecx
push edx
call fcn.005a242d
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x60]
cmp ecx, 0x10
jb 0x4204b9
mov edx, dword [ebp - 0x74]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4204af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bad
push ecx
push edx
call fcn.005a242d
add esp, 8
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x4204f1
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4204e7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bad
push ecx
push edx
call fcn.005a242d
add esp, 8
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
cmp ecx, 0x10
jb 0x420541
mov edx, dword [ebp - 0xbc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x420537
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bad
push ecx
push edx
call fcn.005a242d
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0xf
mov byte [ebp - 0xbc], 0
cmp ecx, 0x10
jb 0x42059a
mov edx, dword [ebp - 0x8c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x420590
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bad
push ecx
push edx
call fcn.005a242d
add esp, 8
mov edx, dword [esi + 0x14]
mov eax, edx
mov ecx, dword [esi + 0x10]
sub eax, ecx
cmp eax, 1
jb 0x4205c8
lea eax, [ecx + 1]
mov dword [esi + 0x10], eax
cmp edx, 0x10
jb 0x4205b6
mov esi, dword [esi]
mov word [esi + ecx], 9
mov byte [ebp - 0xbd], 0
jmp 0x420b74
push 1
push 0x67813c
push dword [ebp - 0xc4]
mov ecx, esi
push 1
call fcn.00406db0
mov byte [ebp - 0xbd], 0
jmp 0x420b74
mov edi, dword [ebp - 0xe0]
lea ecx, [ebp - 0xd0]
push edi
push eax
call fcn.00420be0
test al, al
jne 0x4207ae
lea eax, [ebp - 0x8c]
push edi
push eax
call fcn.00456640
add esp, 8
push 0x15
push str.Zip_single_file_path:
push 0
mov ecx, eax
mov dword [ebp - 4], 9
call fcn.0042a1d0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x44], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x34], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x30]
mov eax, edx
mov ecx, dword [ebp - 0x34]
sub eax, ecx
push 5
push str.fails
cmp eax, 5
jb 0x4206a1
cmp edx, 0x10
lea esi, [ebp - 0x44]
lea eax, [ecx + 5]
cmovae esi, dword [ebp - 0x44]
add esi, ecx
mov dword [ebp - 0x34], eax
push esi
call fcn.005a4460
add esp, 0xc
mov byte [esi + 5], 0
lea eax, [ebp - 0x44]
jmp 0x4206b1
push dword [ebp - 0xc4]
lea ecx, [ebp - 0x44]
push 5
call fcn.00406db0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x74], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x64], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov esi, dword [ebp - 0xdc]
lea eax, [ebp - 0x74]
sub esi, 0xffffff80
mov byte [ebp - 4], 0xf
push eax
mov ecx, esi
call fcn.004059f0
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x60]
cmp ecx, 0x10
jb 0x420723
mov edx, dword [ebp - 0x74]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x420719
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bb2
push ecx
push edx
call fcn.005a242d
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x42075b
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x420751
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bb2
push ecx
push edx
call fcn.005a242d
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
cmp ecx, 0x10
jb 0x42059a
mov edx, dword [ebp - 0x8c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x420590
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bb2
jmp 0x420590
mov eax, dword [ebp - 0xc4]
mov edi, accept
mov esi, dword [esi]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc4], eax
cmp esi, eax
je 0x4208b8
nop dword [eax]
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x4207da
mov eax, dword [esi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4208a9
mov ecx, dword [esi + 0x10]
mov eax, edi
sub eax, ecx
cmp eax, 4
jb 0x420bb7
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x420803
mov eax, dword [esi]
push 4
push 0x678140
push ecx
push eax
push ecx
push dword [ebp - 0xc4]
lea ecx, [ebp - 0x44]
call fcn.0040a060
mov dword [ebp - 4], 0x10
lea ecx, [ebp - 0x44]
cmp dword [ebp - 0x30], 8
mov eax, esi
cmovae ecx, dword [ebp - 0x44]
cmp dword [esi + 0x14], 8
jb 0x420837
mov eax, dword [esi]
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0xd4]
lea ecx, [ebp - 0xd0]
call fcn.00420be0
cmp dword [ebp - 0x30], 8
lea eax, [ebp - 0x44]
cmovae eax, dword [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x4208a9
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x42089f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bad
push ecx
push edx
call fcn.005a242d
add esp, 8
add esi, 0x18
cmp esi, dword [ebp - 0xc4]
jne 0x4207d0
cmp byte [ebx + 0x14], 0
mov esi, dword [ebp - 0xcc]
jne 0x4208ce
cmp dword [esi + 0x10], 0
je 0x420b74
lea eax, [ebp - 0xd0]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0xc8], eax
lea eax, [ebp - 0xd4]
mov dword [ebp - 0xc4], eax
xor eax, eax
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
lea eax, [ebp - 0x5c]
mov dword [ebp - 4], 0x12
push eax
call fcn.00450490
add esp, 4
cmp byte [ebx + 0x14], 0
je 0x4209ab
mov ecx, dword [ebp - 0x4c]
mov eax, edi
sub eax, ecx
cmp eax, 8
jb 0x420bb7
cmp dword [ebp - 0x48], 8
lea eax, [ebp - 0x5c]
push 8
cmovae eax, dword [ebp - 0x5c]
push str.Xml.zip
push ecx
push eax
push ecx
push dword [ebp - 0xc4]
lea ecx, [ebp - 0x8c]
call fcn.0040a060
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0xc8]
call fcn.00420f90
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x78]
cmp ecx, 8
jb 0x4209ab
mov edx, dword [ebp - 0x8c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4209a1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bbc
push ecx
push edx
call fcn.005a242d
add esp, 8
cmp dword [esi + 0x10], 0
je 0x420b23
lea eax, [ebp - 0x74]
push esi
push eax
call fcn.004561b0
add esp, 8
mov esi, eax
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x4c]
sub edi, ecx
cmp edi, 1
jb 0x420bc1
cmp dword [ebp - 0x48], 8
lea eax, [ebp - 0x5c]
push 1
cmovae eax, dword [ebp - 0x5c]
push 0x63ff54
push ecx
push eax
push ecx
push dword [ebp - 0xc4]
lea ecx, [ebp - 0x8c]
call fcn.0040a060
push esi
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 0x15
push eax
push dword [ebp - 0xc4]
lea ecx, [ebp - 0xa4]
call fcn.00418260
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 0x16
push eax
lea ecx, [ebp - 0xc8]
call fcn.00420f90
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x90]
cmp ecx, 8
jb 0x420a73
mov edx, dword [ebp - 0xa4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x420a69
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bc6
push ecx
push edx
call fcn.005a242d
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 7
mov word [ebp - 0xa4], ax
cmp ecx, 8
jb 0x420ad1
mov edx, dword [ebp - 0x8c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x420ac7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bc6
push ecx
push edx
call fcn.005a242d
add esp, 8
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x60]
cmp ecx, 8
jb 0x420b0f
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x420b05
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bc6
push ecx
push edx
call fcn.005a242d
add esp, 8
xor eax, eax
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 7
mov word [ebp - 0x74], ax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x48]
cmp ecx, 8
jb 0x420b60
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x420b56
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x420bcb
push ecx
push edx
call fcn.005a242d
add esp, 8
xor eax, eax
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
mov ecx, dword [ebp - 0xd4]
test ecx, ecx
je 0x420b87
push ecx
call fcn.0045eb40
add esp, 4
mov al, byte [ebp - 0xbd]
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.005a1c7e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
call fcn.005a7b3f
call fcn.005a7b3f
call fcn.004033f0
call fcn.005a7b3f
call fcn.004033f0
call fcn.005a7b3f
call fcn.005a7b3f
int3