Function at 0x4086c0
Capabilities:
Delete file
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x551524
mov eax, dword fs:[0]
push eax
sub esp, 0xa4c
mov eax, dword [0x5bb270]
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
cmp dword [0x5ba230], 0
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0xa3c], eax
je 0x40871d
push 0x80
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x40871d
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push 2
push 4
push 0
push 0
push 0x40000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
mov dword [ebp - 0xa44], ebx
cmp ebx, 0xffffffff
je 0x408806
cmp dword [0x5ba230], 0
mov esi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
je 0x408819
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xa38], ax
lea eax, [ebp - 0xa36]
push eax
call fcn.00537c80
push str._UDHLDFile_
push 0x562440
lea eax, [ebp - 0xa38]
push 0x104
push eax
call fcn.0053777e
push 0x104
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00537c80
add esp, 0x28
lea eax, [ebp - 0x218]
push 0
push 0
push 0x104
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xa38]
push eax
push 0x400
push 0
call esi
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.00537f91
add esp, 8
mov dword [ebp - 0xa40], 0
lea ecx, [ebp - 0xa40]
push 0
push ecx
push eax
lea eax, [ebp - 0x218]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x40880d
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x408d4d
mov dword [0x5ba230], 0
jmp 0x408826
push 2
push 0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
xor eax, eax
mov dword [ebp - 0xa48], 0
push 0x206
push eax
mov word [ebp - 0x420], ax
lea eax, [ebp - 0x41e]
push eax
call fcn.00537c80
push edi
push str.FILE
push str._s__s__n
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.0053777e
push 0x104
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.00537c80
add esp, 0x2c
lea eax, [ebp - 0x114]
push 0
push 0
push 0x104
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x420]
push eax
push 0x400
push 0
call esi
lea eax, [ebp - 0x114]
push 0x104
push eax
call fcn.00537f91
add esp, 8
lea ecx, [ebp - 0xa48]
push 0
push ecx
push eax
lea eax, [ebp - 0x114]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4087ff
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x830], ax
lea eax, [ebp - 0x82e]
push eax
call fcn.00537c80
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x628], ax
lea eax, [ebp - 0x626]
push eax
call fcn.00537c80
push edi
lea eax, [ebp - 0x628]
push 0x104
push eax
call fcn.0053725b
lea eax, [ebp - 0x628]
push 0x104
push eax
call fcn.005372b7
add esp, 0x2c
test eax, eax
jle 0x408943
cmp word [ebp + eax*2 - 0x628], 0x5c
je 0x40897a
dec eax
test eax, eax
jg 0x408933
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0x830]
push 0x104
push eax
call fcn.0053725b
add esp, 0xc
call fcn.004122b0
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x408994
push 0x80004005
call fcn.004022c0
add eax, eax
cmp eax, 0x208
jae 0x40898f
xor ecx, ecx
mov word [ebp + eax - 0x628], cx
jmp 0x408943
call fcn.00537eb5
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0xa4c], edi
xor ebx, ebx
mov dword [ebp - 4], 0
xor esi, esi
cmp dword [ebp + 0x14], ebx
jbe 0x408a08
mov esi, dword [ebp - 0xa3c]
lea ebx, [ebx]
lea eax, [esi + 0x208]
push eax
push esi
lea eax, [ebp - 0xa4c]
push 0x561e78
push eax
call fcn.00405ee0
mov edi, dword [ebp - 0xa4c]
lea eax, [ebp - 0x830]
push eax
push edi
call fcn.005375f1
add esp, 0x18
test eax, eax
je 0x408a03
inc ebx
add esi, 0x410
cmp ebx, dword [ebp + 0x14]
jb 0x4089c0
xor esi, esi
jmp 0x408a08
mov esi, 1
mov eax, dword [0x5c0a68]
test al, 1
jne 0x408a38
or eax, 1
mov dword [0x5c0a68], eax
mov ecx, 0x5c0a54
mov byte [ebp - 4], 1
call fcn.00412c44
push 0x560900
call fcn.0053717b
add esp, 4
mov byte [ebp - 4], 0
test esi, esi
je 0x408d1a
mov ecx, dword [ebp - 0xa3c]
imul eax, ebx, 0x410
add ecx, eax
lea eax, [ecx + 0x208]
push eax
push ecx
push str.FOLDER
push str._s__s____s__n
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.0053777e
mov ebx, dword [0x5c0a5c]
add esp, 0x18
mov dword [ebp - 0xa58], ebx
call fcn.004122b0
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x408a9c
push 0x80004005
call fcn.004022c0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xa3c], esi
xor ecx, ecx
mov byte [ebp - 4], 2
mov dword [ebp - 0xa40], ecx
test ebx, ebx
je 0x408be0
test ecx, ecx
js 0x408cde
cmp ecx, dword [0x5c0a5c]
jge 0x408cde
mov eax, dword [0x5c0a58]
mov edx, dword [eax + ecx*4]
lea eax, [esi - 0x10]
mov dword [ebp - 0xa50], eax
lea ebx, [edx - 0x10]
cmp ebx, eax
je 0x408bac
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
mov dword [ebp - 0xa54], ecx
jl 0x408b97
mov ecx, dword [ebx]
cmp ecx, dword [eax]
jne 0x408b97
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
mov ecx, eax
jl 0x408b2e
cmp ecx, dword [ebx]
jne 0x408b2e
mov esi, ebx
mov eax, 1
lock xadd dword [edx], eax
jmp 0x408b6a
mov eax, dword [ecx]
push 2
push dword [ebx + 4]
call dword [eax]
mov esi, eax
test esi, esi
je 0x408c90
mov ecx, dword [ebx + 4]
mov dword [esi + 4], ecx
mov ecx, dword [ebx + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.00537190
add esp, 0x10
mov ecx, dword [ebp - 0xa54]
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x408b8c
mov edx, dword [ebp - 0xa50]
push edx
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0x10
mov dword [ebp - 0xa3c], esi
jmp 0x408baf
push dword [edx - 0xc]
lea ecx, [ebp - 0xa3c]
push edx
call fcn.004046f0
mov esi, dword [ebp - 0xa3c]
or ebx, 0xffffffff
lea eax, [ebp - 0x420]
push eax
push esi
call fcn.005375f1
add esp, 8
test eax, eax
je 0x408c95
mov ecx, dword [ebp - 0xa40]
inc ecx
mov dword [ebp - 0xa40], ecx
cmp ecx, dword [ebp - 0xa58]
jb 0x408ac0
push 0
push 0
push 0x104
lea eax, [ebp - 0x114]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x420]
push eax
push 0x400
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea eax, [ebp - 0x114]
push 0x104
push eax
call fcn.00537f91
mov ebx, dword [ebp - 0xa44]
lea ecx, [ebp - 0xa48]
add esp, 8
push 0
push ecx
push eax
lea eax, [ebp - 0x114]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x408ce3
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
add esi, 0xfffffff0
mov byte [ebp - 4], 0
or ebx, 0xffffffff
mov ecx, ebx
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x408c67
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x408806
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
jmp 0x408d4d
call fcn.004047c0
push dword [ebp - 0xa44]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
add esi, 0xfffffff0
mov byte [ebp - 4], 0
mov ecx, ebx
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x408cbe
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x408d48
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
jmp 0x408d48
call fcn.0041148d
lea eax, [ebp - 0x420]
mov ecx, 0x5c0a54
push eax
push dword [0x5c0a5c]
call fcn.00412ebe
add esi, 0xfffffff0
mov byte [ebp - 4], 0
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x408d20
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x408d20
mov ebx, dword [ebp - 0xa44]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
add edi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
or ecx, 0xffffffff
lea eax, [edi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x408d48
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 1
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.0053787e
mov esp, ebp
pop ebp
ret 0x10