Function at 0x40211e
Capabilities:
Copy file
Delete file
Get file size
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x565c
call fcn.0044fe10
push ebx
push esi
xor ebx, ebx
cmp dword [ebp + 0x1c], ebx
push edi
mov esi, ecx
je 0x4021ad
push dword [ebp + 0xc]
call fcn.00401eb4
test eax, eax
jne 0x4021ad
push 0x7fe
lea eax, [ebp - 0xe56]
push ebx
push eax
mov word [ebp - 0xe58], bx
call fcn.0043efa0
push dword [ebp + 0xc]
call fcn.0043f735
push dword [ebp + 0x1c]
mov edi, eax
call fcn.0043f735
lea eax, [edi + eax + 1]
add esp, 0x14
cmp eax, 0x3ff
jae 0x402191
push dword [ebp + 0x1c]
lea eax, [ebp - 0xe58]
push dword [ebp + 0xc]
call fcn.004071cb
pop ecx
pop ecx
jmp 0x402198
mov word [ebp - 0xe58], bx
push esi
push dword [ebp + 0x18]
lea eax, [ebp - 0xe58]
push eax
call fcn.00403413
jmp 0x4025a8
mov eax, dword [ebp + 0x18]
push 0x208
mov dword [ebp - 4], eax
lea eax, [ebp - 0x446]
push ebx
push eax
mov dword [ebp + 0x1c], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
mov word [ebp - 0x448], bx
call fcn.0043efa0
add esp, 0xc
cmp esi, ebx
je 0x402224
push str.gzip
push esi
call fcn.0043fbd2
test eax, eax
pop ecx
pop ecx
jne 0x4021f6
mov dword [ebp - 8], 1
jmp 0x40220e
push 0x455414
push esi
call fcn.0043fbd2
test eax, eax
pop ecx
pop ecx
jne 0x402224
mov dword [ebp - 0xc], 1
push 0x45540c
lea edi, [ebp - 0x448]
call fcn.00406e27
mov eax, edi
mov dword [ebp - 4], eax
pop ecx
mov edi, dword [ebp + 0x10]
mov eax, edi
and eax, 0xff000000
cmp eax, 0x80000000
mov esi, 0x104
jne 0x4022f9
push 0x208
lea eax, [ebp - 0x656]
push ebx
push eax
mov word [ebp - 0x658], bx
call fcn.0043efa0
push 0x208
lea eax, [ebp - 0x236]
push ebx
push eax
mov word [ebp - 0x238], bx
call fcn.0043efa0
and edi, 0xffffff
push edi
push str.f__6.6x
lea eax, [ebp - 0x658]
push 0x14
push eax
call fcn.0043ec4f
push dword [ebp + 0xc]
call fcn.0043f735
mov edi, eax
lea eax, [ebp - 0x658]
push eax
call fcn.0043f735
lea eax, [edi + eax + 1]
add esp, 0x30
cmp eax, esi
jae 0x4022c4
lea eax, [ebp - 0x658]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x238]
call fcn.004071cb
pop ecx
pop ecx
jmp 0x4022cb
mov word [ebp - 0x238], bx
lea eax, [ebp - 0x238]
push eax
call fcn.00406f43
test eax, eax
pop ecx
je 0x4023d0
push ebx
push dword [ebp - 4]
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.KERNEL32.DLL_CopyFileW]
mov dword [ebp + 0x1c], eax
jmp 0x4023d0
push dword [ebp + 0x18]
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
push dword [ebp - 4]
call fcn.004069ec
cmp eax, 0xffffffff
pop ecx
mov dword [ebp - 4], eax
je 0x4023d0
push 0xfff
lea eax, [ebp - 0x1657]
push ebx
push eax
mov byte [ebp - 0x1658], bl
call fcn.0043efa0
mov ecx, dword [ebp + 0x14]
mov eax, ecx
add esp, 0xc
shr eax, 0xc
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0xc], ebx
je 0x40238a
mov eax, dword [ebp + 0xc]
shl eax, 0xc
push eax
push 0x1000
lea eax, [ebp - 0x1658]
mov edx, edi
mov edi, dword [ebp + 8]
push eax
call fcn.004025af
push 0x1000
lea eax, [ebp - 0x1658]
push eax
push dword [ebp - 4]
call fcn.004078fd
mov edi, dword [ebp + 0x10]
add esp, 0xc
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp + 0x1c]
jb 0x402342
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x1c]
and ecx, 0xfff
mov dword [ebp + 0xc], ecx
jbe 0x4023c0
shl eax, 0xc
push eax
push ecx
lea eax, [ebp - 0x1658]
mov edx, edi
mov edi, dword [ebp + 8]
push eax
call fcn.004025af
push dword [ebp + 0xc]
lea eax, [ebp - 0x1658]
push eax
push dword [ebp - 4]
call fcn.004078fd
add esp, 0xc
push dword [ebp - 4]
mov dword [ebp + 0x1c], 1
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
cmp dword [ebp - 8], ebx
je 0x4024a8
push dword [ebp + 0x18]
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
push esi
lea eax, [ebp - 0x557]
push ebx
push eax
mov byte [ebp - 0x558], bl
call fcn.0043efa0
push esi
lea eax, [ebp - 0x137]
push ebx
push eax
mov byte [ebp - 0x138], bl
call fcn.0043efa0
mov edi, dword [sym.imp.KERNEL32.DLL_WideCharToMultiByte]
add esp, 0x18
push ebx
push ebx
push esi
lea eax, [ebp - 0x558]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x448]
push eax
push ebx
push ebx
call edi
push ebx
push ebx
push esi
lea eax, [ebp - 0x138]
push eax
push 0xffffffffffffffff
push dword [ebp + 0x18]
push ebx
push ebx
call edi
lea eax, [ebp - 0x558]
push eax
call fcn.0043a6cf
mov esi, eax
cmp esi, ebx
pop ecx
je 0x402591
lea eax, [ebp - 0x138]
push 0x455420
push eax
call fcn.0043fab0
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
je 0x40249c
jmp 0x402484
je 0x402495
push edi
push eax
lea eax, [ebp - 0x5658]
push 1
push eax
call fcn.0044158e
add esp, 0x10
lea eax, [ebp - 0x5658]
mov ecx, esi
call fcn.0043a918
cmp eax, ebx
jge 0x40246f
push edi
call fcn.0043f15d
pop ecx
mov eax, esi
call fcn.0043ab64
jmp 0x402591
cmp dword [ebp - 0xc], ebx
je 0x4025a5
call fcn.0041277f
cmp eax, ebx
mov dword [ebp + 0x10], eax
je 0x402591
lea eax, [ebp - 0x448]
push eax
call fcn.004069d3
cmp eax, 0xffffffff
pop ecx
mov dword [ebp + 0xc], eax
je 0x402589
push ebx
push eax
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov edi, eax
mov eax, 0x1388
lea esi, [ebp - 0x18]
mov dword [ebp + 0x1c], edi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], eax
call fcn.0040875b
push edi
push dword [ebp - 0x18]
xor esi, esi
push dword [ebp + 0xc]
call fcn.004078d5
mov ebx, dword [sym.imp.KERNEL32.DLL_CloseHandle]
add esp, 0xc
push dword [ebp + 0xc]
call ebx
imul edi, edi, 0xa
mov eax, 0x20000
cmp edi, eax
mov dword [ebp + 0xc], edi
jae 0x402536
mov edi, eax
mov dword [ebp + 0xc], edi
lea esi, [ebp - 0x24]
call fcn.0040875b
push dword [ebp - 0x24]
lea esi, [ebp + 0xc]
push dword [ebp - 0x18]
push dword [ebp + 0x1c]
call fcn.004164c4
add esp, 0xc
cmp eax, 1
jne 0x402579
push dword [ebp + 0x18]
call fcn.004069ec
mov esi, eax
cmp esi, 0xffffffff
pop ecx
je 0x402579
push dword [ebp + 0xc]
push dword [ebp - 0x24]
push esi
call fcn.004078fd
add esp, 0xc
push esi
call ebx
lea esi, [ebp - 0x24]
call fcn.00408746
lea esi, [ebp - 0x18]
call fcn.00408746
mov esi, dword [ebp + 0x10]
call fcn.004127ab
lea eax, [ebp - 0x448]
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
mov dword [ebp + 0x1c], 1
mov eax, dword [ebp + 0x1c]
pop edi
pop esi
pop ebx
leave
ret 0x18