Function at 0x46b86e
Capabilities:
Resolve function by parsing pe exports
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d0726
mov eax, dword fs:[0]
push eax
sub esp, 0x120
push ebx
push esi
push edi
mov eax, dword [section..data]
xor eax, esp
push eax
lea eax, [esp + 0x130]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
mov dword [esp + 0x1c], vtable.mc::MyStrPath.0
mov dword [esp + 0x20], ebx
lea eax, [esp + 0x1c]
mov dword [esp + 0x138], ebx
push eax
lea ecx, [esi + 0x3c]
call fcn.004c083f
test al, al
je 0x46bab4
lea ecx, [esp + 0x1c]
call fcn.004bc9cf
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 4
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], vtable.micro::utils::QObArray_struct_mc::MyFileItem_.0
mov byte [esp + 0x138], 1
lea ecx, [esp + 0x28]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x48]
test al, al
je 0x46baa4
cmp dword [esp + 0x30], 1
mov eax, ebx
jne 0x46b91f
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov eax, dword [eax + 8]
push eax
push dword [esi + 0x20]
lea ecx, [esp + 0x54]
call fcn.0043bfad
lea ecx, [esp + 0x4c]
call fcn.0041ff7e
cmp eax, 1
jne 0x46ba93
lea ecx, [esp + 0x44]
call fcn.0041ffe9
mov byte [esp + 0x138], 3
xor ecx, ecx
mov edi, dword [esp + 0x78]
mov ebx, edi
and ebx, 0x31a7
mov dword [esp + 0x24], ecx
mov eax, ebx
and edi, 0xffffce58
and eax, 0xfffffeff
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x40], eax
test eax, eax
jle 0x46ba88
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x1c]
mov esi, dword [eax + ecx*4]
lea ecx, [esp + 0x14]
lea eax, [esi + 0x258]
push eax
call fcn.0040e5bc
mov eax, dword [esi + 8]
mov esi, eax
shr eax, 4
xor esi, ebx
pop ecx
test al, 1
je 0x46b9f9
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x46b9cb
cmp dword [esp + 0x18], 0
mov eax, 0x4ef644
push ecx
cmovne eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.DLL_SetFileAttributesW]
test edi, edi
je 0x46ba64
lea ecx, [esp + 0x14]
push 1
test esi, 0x800
je 0x46b9e5
mov dl, 1
jmp 0x46b9e7
xor dl, dl
call fcn.0046b7c1
mov eax, 0x4ef644
test esi, 0x4000
jmp 0x46ba3b
mov esi, 0x4ef644
test ebx, ebx
je 0x46ba16
cmp dword [esp + 0x18], 0
mov eax, esi
push ebx
cmovne eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.DLL_SetFileAttributesW]
test edi, edi
je 0x46ba64
lea ecx, [esp + 0x14]
push 0
test edi, 0x800
je 0x46ba2c
mov dl, 1
jmp 0x46ba2e
xor dl, dl
call fcn.0046b7c1
mov eax, esi
test edi, 0x4000
pop ecx
je 0x46ba51
cmp dword [esp + 0x18], 0
cmovne eax, dword [esp + 0x18]
push eax
call dword [sym.imp.ADVAPI32.dll_EncryptFileW]
jmp 0x46ba64
cmp dword [esp + 0x18], 0
push 0
cmovne eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.ADVAPI32.dll_DecryptFileW]
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], vtable.micro::utils::QString.0
call fcn.004b9e50
mov ecx, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, dword [esp + 0x40]
jl 0x46b982
lea ecx, [esp + 0x44]
call fcn.0041ffa8
xor ebx, ebx
lea ecx, [esp + 0x4c]
mov byte [esp + 0x138], 1
call fcn.0043c04f
lea ecx, [esp + 0x28]
mov byte [esp + 0x138], bl
call fcn.0042dc0c
or dword [esp + 0x138], 0xffffffff
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], vtable.micro::utils::QString.0
call fcn.004b9e50
mov ecx, dword [esp + 0x130]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret