Function at 0x442540
Capabilities:
Create directory
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51d106
mov eax, dword fs:[0]
push eax
mov eax, 0x6080
call fcn.00502fa0
mov eax, dword [0x5513d4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x608c], eax
call fcn.004aecd0
test al, al
je 0x442da5
push 0x800
lea eax, [ebp - 0x2010]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x800
push 0x526ee0
lea eax, [ebp - 0x2010]
push eax
call fcn.00485380
call fcn.00477ef0
cmp eax, 0x600
mov byte [ebp - 0x6085], 0
lea eax, [ebp - 0x1010]
push eax
push 0
push 0
push 0x10
push 0
setae bh
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test bh, bh
je 0x4427b7
test eax, eax
lea eax, [ebp - 0x1010]
push 0x800
je 0x442602
push str.unknown_folder
push eax
call fcn.0049ce90
jmp 0x442634
push eax
call fcn.004836c0
push 0x800
push str.WinRAR.lnk
lea eax, [ebp - 0x1010]
push eax
call fcn.0049ce50
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
setne byte [ebp - 0x6085]
lea eax, [ebp - 0x1010]
push eax
push 0
push 0
push 0x19
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
je 0x442663
push 0x800
push str.unknown_folder
lea eax, [ebp - 0x1010]
push eax
call fcn.0049ce90
push 0x800
lea eax, [ebp - 0x1010]
push eax
call fcn.004836c0
push 0x800
push str.WinRAR.lnk
lea eax, [ebp - 0x1010]
push eax
call fcn.0049ce50
xor eax, eax
mov word [ebp - 0x4014], ax
lea eax, [ebp - 0x4014]
push eax
push 0
push 0
push 0x10
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
je 0x4426c2
push 0x800
push str.unknown_folder
lea eax, [ebp - 0x4014]
push eax
call fcn.0049ce90
mov esi, dword [ebp + 8]
mov bl, byte [ebp + 0x18]
cmp byte [esi + 0x14], 0
je 0x4427da
test bl, bl
je 0x4426f2
lea eax, [ebp - 0x1010]
push eax
call fcn.00474160
test al, al
jne 0x4426f2
cmp byte [ebp - 0x6085], al
je 0x4427e6
push 0
push edi
push 0x537
call fcn.00496b20
push eax
push 0
lea eax, [ebp - 0x1010]
push eax
lea eax, [ebp - 0x2010]
push eax
push 1
call fcn.004d63f0
test al, al
jne 0x4427e6
test bh, bh
je 0x4427e6
test bl, bl
je 0x4427e6
lea eax, [ebp - 0x1010]
push eax
call fcn.00474160
test al, al
je 0x442754
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x4427e6
push 0x800
lea eax, [ebp - 0x1010]
push eax
call fcn.00441040
test al, al
je 0x4427e6
push 0x800
lea eax, [ebp - 0x1010]
push eax
call fcn.004836c0
push 0x800
push str.WinRAR.lnk
lea eax, [ebp - 0x1010]
push eax
call fcn.0049ce50
push 0
push edi
push 0x537
call fcn.00496b20
push eax
push 0
lea eax, [ebp - 0x1010]
push eax
lea eax, [ebp - 0x2010]
push eax
push 1
call fcn.004d63f0
jmp 0x4427e6
test eax, eax
je 0x442663
push 0x800
push str.unknown_folder
lea eax, [ebp - 0x1010]
push eax
call fcn.0049ce90
jmp 0x442da5
lea eax, [ebp - 0x1010]
push eax
call fcn.00473d60
lea eax, [ebp - 0x1010]
push eax
movzx eax, bh
neg eax
push 0
sbb eax, eax
and eax, 0xb
push 0
add eax, 0xb
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
je 0x442821
push 0x800
push str.unknown_folder
lea eax, [ebp - 0x1010]
push eax
call fcn.0049ce90
push 0x800
lea eax, [ebp - 0x1010]
push eax
call fcn.004836c0
push 0x800
push str.WinRAR.lnk
lea eax, [ebp - 0x1010]
push eax
call fcn.0049ce50
cmp byte [esi + 0x15], 0
je 0x44288e
test bl, bl
je 0x442862
lea eax, [ebp - 0x1010]
push eax
call fcn.00474160
test al, al
je 0x44289a
push 0
push edi
push 0x537
call fcn.00496b20
push eax
lea eax, [ebp - 0x4014]
push eax
lea eax, [ebp - 0x1010]
push eax
lea eax, [ebp - 0x2010]
push eax
push 1
call fcn.004d63f0
jmp 0x44289a
lea eax, [ebp - 0x1010]
push eax
call fcn.00473d60
push 0x526ee0
call fcn.005097cd
push str.WinRAR.chm
mov dword [ebp - 0x4024], eax
call fcn.005097cd
push str.Rar.txt
mov dword [ebp - 0x4020], eax
call fcn.005097cd
add esp, 0xc
mov dword [ebp - 0x401c], eax
push 0x391
call fcn.00496b20
push eax
call fcn.005097cd
push 0x526fa4
mov dword [ebp - 0x4018], eax
call fcn.005097cd
add esp, 8
mov dword [ebp - 0x4034], eax
push 0x38e
call fcn.00496b20
push eax
call fcn.005097cd
add esp, 4
mov dword [ebp - 0x4030], eax
push 0x38f
call fcn.00496b20
push eax
call fcn.005097cd
add esp, 4
mov dword [ebp - 0x402c], eax
push 0x390
call fcn.00496b20
push eax
call fcn.005097cd
add esp, 4
mov dword [ebp - 0x4028], eax
lea eax, [ebp - 0x1010]
push eax
push 0
push 0
push 2
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
je 0x442970
push 0x800
push str.unknown_folder
lea eax, [ebp - 0x1010]
push eax
call fcn.0049ce90
push 0x800
lea eax, [ebp - 0x1010]
push eax
call fcn.004836c0
push 0x800
push 0x526fa4
lea eax, [ebp - 0x1010]
push eax
call fcn.0049ce50
test bl, bl
je 0x4429af
lea eax, [ebp - 0x1010]
push eax
call fcn.00474160
test al, al
je 0x442b60
cmp byte [esi + 0x16], 0
je 0x442b54
mov eax, dword [ebp - 0x608c]
test eax, eax
je 0x4429d3
push dword [ebp + 0x10]
lea ecx, [ebp - 0x1010]
push ecx
push eax
call fcn.0049ce90
test bl, bl
jne 0x442a98
lea eax, [ebp - 0x1010]
push eax
call fcn.00474160
test al, al
je 0x442a89
push 0x802
lea eax, [ebp - 0x3014]
push eax
push 0x524704
lea eax, [ebp - 0x1010]
push eax
call fcn.00484d90
lea ecx, [ebp - 0x503c]
call fcn.00475a10
mov dword [ebp - 4], 0
lea eax, [ebp - 0x3014]
push eax
lea ecx, [ebp - 0x503c]
call fcn.00475c10
lea ecx, [ebp - 0x6084]
call fcn.00404800
push 0
lea eax, [ebp - 0x6084]
push eax
lea ecx, [ebp - 0x503c]
call fcn.00475af0
test al, al
je 0x442a77
lea eax, [ebp - 0x6084]
push eax
call fcn.00473d60
push 0
lea eax, [ebp - 0x6084]
push eax
lea ecx, [ebp - 0x503c]
call fcn.00475af0
test al, al
jne 0x442a53
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x503c]
call fcn.00475a30
push 0
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
xor esi, esi
lea ebx, [ebx]
push 0x800
lea eax, [ebp - 0x3010]
push eax
push dword [ebp + esi*4 - 0x4034]
lea eax, [ebp - 0x1010]
push eax
call fcn.00484d90
push 0x800
push str..lnk
lea eax, [ebp - 0x3010]
push eax
call fcn.0049ce50
push 0x800
push dword [ebp + esi*4 - 0x4024]
lea eax, [ebp - 0x2010]
push eax
call fcn.00485380
lea eax, [ebp - 0x2010]
push eax
call fcn.00474160
test al, al
je 0x442b45
test bl, bl
je 0x442b11
lea eax, [ebp - 0x3010]
push eax
call fcn.00474160
test al, al
je 0x442b45
mov eax, esi
neg eax
push 0
sbb eax, eax
not eax
and eax, edi
push eax
push 0x537
call fcn.00496b20
push eax
lea eax, [ebp - 0x4014]
push eax
lea eax, [ebp - 0x3010]
push eax
lea eax, [ebp - 0x2010]
push eax
push 1
call fcn.004d63f0
inc esi
cmp esi, 4
jb 0x442aa0
mov esi, dword [ebp + 8]
jmp 0x442b60
lea eax, [ebp - 0x1010]
push eax
call fcn.00440e90
lea eax, [ebp - 0x1010]
push eax
push 0
push 0
push 0x17
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
lea eax, [ebp - 0x1010]
push 0x800
je 0x442b94
push str.unknown_folder
push eax
call fcn.0049ce90
jmp 0x442d80
push eax
call fcn.004836c0
push 0x800
push 0x526fa4
lea eax, [ebp - 0x1010]
push eax
call fcn.0049ce50
test bl, bl
je 0x442bc8
lea eax, [ebp - 0x1010]
push eax
call fcn.00474160
test al, al
je 0x442d80
cmp byte [esi + 0x16], 0
je 0x442d74
test bl, bl
jne 0x442c97
lea eax, [ebp - 0x1010]
push eax
call fcn.00474160
test al, al
je 0x442c88
push 0x802
lea eax, [ebp - 0x3014]
push eax
push 0x524704
lea eax, [ebp - 0x1010]
push eax
call fcn.00484d90
lea ecx, [ebp - 0x503c]
call fcn.00475a10
mov dword [ebp - 4], 1
lea eax, [ebp - 0x3014]
push eax
lea ecx, [ebp - 0x503c]
call fcn.00475c10
lea ecx, [ebp - 0x6084]
call fcn.00404800
push 0
lea eax, [ebp - 0x6084]
push eax
lea ecx, [ebp - 0x503c]
call fcn.00475af0
test al, al
je 0x442c76
lea eax, [ebp - 0x6084]
push eax
call fcn.00473d60
push 0
lea eax, [ebp - 0x6084]
push eax
lea ecx, [ebp - 0x503c]
call fcn.00475af0
test al, al
jne 0x442c52
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x503c]
call fcn.00475a30
push 0
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov esi, dword [ebp - 0x608c]
test esi, esi
je 0x442cc1
lea eax, [ebp - 0x1010]
push eax
call fcn.00474160
test al, al
je 0x442cc1
push dword [ebp + 0x10]
lea eax, [ebp - 0x1010]
push eax
push esi
call fcn.0049ce90
xor esi, esi
push 0x800
lea eax, [ebp - 0x3010]
push eax
push dword [ebp + esi*4 - 0x4034]
lea eax, [ebp - 0x1010]
push eax
call fcn.00484d90
push 0x800
push str..lnk
lea eax, [ebp - 0x3010]
push eax
call fcn.0049ce50
push 0x800
push dword [ebp + esi*4 - 0x4024]
lea eax, [ebp - 0x2010]
push eax
call fcn.00485380
lea eax, [ebp - 0x2010]
push eax
call fcn.00474160
test al, al
je 0x442d68
test bl, bl
je 0x442d34
lea eax, [ebp - 0x3010]
push eax
call fcn.00474160
test al, al
je 0x442d68
mov eax, esi
neg eax
push 0
sbb eax, eax
not eax
and eax, edi
push eax
push 0x537
call fcn.00496b20
push eax
lea eax, [ebp - 0x4014]
push eax
lea eax, [ebp - 0x3010]
push eax
lea eax, [ebp - 0x2010]
push eax
push 1
call fcn.004d63f0
inc esi
cmp esi, 4
jb 0x442cc3
jmp 0x442d80
lea eax, [ebp - 0x1010]
push eax
call fcn.00440e90
xor esi, esi
push dword [ebp + esi - 0x4024]
call fcn.005097b2
push dword [ebp + esi - 0x4034]
call fcn.005097b2
add esi, 4
add esp, 8
cmp esi, 0x10
jb 0x442d82
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00502f8e
mov esp, ebp
pop ebp
ret 0x14