Function at 0x4107e0
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x584190
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x5e9750]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor esi, esi
mov dword [ebp - 4], esi
mov ebx, dword [ebp + 8]
cmp ebx, esi
je 0x410a95
xor edi, edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], esi
mov byte [ebp - 4], 1
jmp 0x410833
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [eax + 0xc]
mov ecx, ebx
call edx
test eax, eax
je 0x410908
lea eax, [ebp + 8]
cmp eax, esi
jae 0x4108b3
mov ecx, eax
cmp edi, ecx
ja 0x4108b3
mov ecx, dword [ebp - 0x2c]
mov ebx, eax
sub ebx, edi
sar ebx, 2
cmp esi, ecx
jne 0x4108a5
mov eax, esi
sub eax, edi
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x410940
sub ecx, edi
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x4108a5
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x41088e
xor ecx, ecx
jmp 0x410890
add ecx, edx
cmp ecx, eax
jae 0x410896
mov ecx, eax
push ecx
lea esi, [ebp - 0x34]
call fcn.004123e0
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x34]
test esi, esi
je 0x4108ae
mov edx, dword [edi + ebx*4]
mov dword [esi], edx
mov ebx, dword [ebp + 8]
jmp 0x410902
mov ecx, dword [ebp - 0x2c]
cmp esi, ecx
jne 0x4108fc
mov eax, esi
sub eax, edi
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x410940
sub ecx, edi
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x4108fc
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x4108e5
xor ecx, ecx
jmp 0x4108e7
add ecx, edx
cmp ecx, eax
jae 0x4108ed
mov ecx, eax
push ecx
lea esi, [ebp - 0x34]
call fcn.004123e0
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x34]
test esi, esi
je 0x410902
mov dword [esi], ebx
add esi, 4
mov dword [ebp - 0x30], esi
mov eax, dword [ebx]
mov edx, dword [eax + 0xc]
mov ecx, ebx
call edx
mov dword [ebp + 8], eax
test eax, eax
jne 0x410830
mov eax, 0x5c
lea ebx, [ebp + 0xc]
call fcn.00406d60
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ecx - 0xc]
lea edi, [ebx + 1]
test edi, edi
jns 0x41094a
push 0x80070057
call fcn.00405920
push str.vector_T__too_long
call fcn.00566d44
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
sub eax, edi
or eax, edx
jge 0x410967
push edi
lea ecx, [ebp + 0xc]
call fcn.00405880
mov ecx, dword [ebp + 0xc]
mov eax, 0x5c
mov word [ecx + ebx*2], ax
mov eax, dword [ebp + 0xc]
cmp edi, dword [eax - 8]
jg 0x410936
mov dword [eax - 0xc], edi
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x34]
xor ecx, ecx
mov word [edx + edi*2], cx
mov edi, esi
cmp esi, eax
je 0x410a88
mov esi, dword [edi - 4]
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp + 0xc]
call fcn.004071a0
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
push eax
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, dword [ebp + 0xc]
push 0
push 0x2000010
push 3
push 0
push 1
push 0x100
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x410a2a
mov edx, dword [esi]
mov eax, dword [edx + 0x28]
mov ecx, esi
call eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
mov ecx, esi
call eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
mov edx, dword [esi]
mov eax, dword [edx + 0x30]
mov ecx, esi
call eax
lea ecx, [ebp - 0x14]
push ecx
mov dword [ebp - 0x20], edx
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x24], eax
push edx
lea eax, [ebp - 0x24]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp + 0xc]
mov ebx, dword [edx - 0xc]
lea esi, [ebx + 1]
test esi, esi
js 0x410936
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x410a58
push esi
lea ecx, [ebp + 0xc]
call fcn.00405880
mov edx, dword [ebp + 0xc]
mov ecx, 0x5c
mov word [edx + ebx*2], cx
mov eax, dword [ebp + 0xc]
cmp esi, dword [eax - 8]
jg 0x410936
mov dword [eax - 0xc], esi
mov eax, dword [ebp + 0xc]
xor edx, edx
add edi, 0xfffffffc
mov word [eax + esi*2], dx
cmp edi, dword [ebp - 0x34]
jne 0x410991
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x410a95
push eax
call fcn.0044663b
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x410abb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret