Function at 0x416600
Capabilities:
Get common file path
Get file attributes
Resolve function by parsing pe exports
Set file attributes

Disassembly:
sub esp, 0x744
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x758]
test edi, edi
jne 0x41663f
mov eax, dword [esp + 0x770]
test eax, eax
je 0x416d8d
push 0x436244
push eax
call fcn.0040a873
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x744
ret
mov ebx, dword [esp + 0x75c]
test ebx, ebx
jne 0x416674
mov eax, dword [esp + 0x770]
test eax, eax
je 0x416d8d
push 0x43622c
push eax
call fcn.0040a873
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x744
ret
mov eax, dword [esp + 0x764]
test eax, eax
jne 0x4166a9
mov eax, dword [esp + 0x770]
test eax, eax
je 0x416d8d
push 0x436218
push eax
call fcn.0040a873
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x744
ret
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x150]
mov eax, ecx
mov esi, edi
mov edi, edx
mov ebp, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
lea edx, [esp + 0x150]
rep movsb byte es:[edi], byte [esi]
mov cl, byte [0x436420]
lea edi, [esp + 0x151]
mov byte [esp + 0x150], cl
mov ecx, 0x7f
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push edx
push 0x200
stosb byte es:[edi], al
call ebp
or ecx, 0xffffffff
mov edi, 0x436214
xor eax, eax
lea edx, [esp + 0x150]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x150]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x150]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str..idx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
mov al, byte [0x436420]
rep movsb byte es:[edi], byte [esi]
mov byte [esp + 0x350], al
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x351]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x350]
push ecx
push 0x200
stosb byte es:[edi], al
call ebp
or ecx, 0xffffffff
mov edi, 0x436214
xor eax, eax
lea edx, [esp + 0x350]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebp, ecx
mov esi, edi
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea edx, [esp + 0x350]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x350]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str..mpq
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x760]
mov ecx, ebx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
jne 0x4169b5
mov al, byte [0x436420]
mov ecx, 0x40
mov byte [esp + 0x4c], al
xor eax, eax
lea edi, [esp + 0x4d]
mov ebx, dword [esp + 0x758]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x4c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea eax, [esp + 0x50]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.004164e0
lea ecx, [esp + 0x54]
push 0x436200
push ecx
call fcn.0040a860
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x41694b
lea edx, [esp + 0x4c]
push eax
push edx
call fcn.0040aa99
add esp, 8
test eax, eax
jne 0x416920
lea eax, [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 6
jne 0x416d47
test al, 1
je 0x4168f5
xor eax, 1
test al, 0x20
je 0x4168fc
xor eax, 0x20
lea ecx, [esp + 0x4c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea edx, [esp + 0x4c]
push 0x436200
push edx
call fcn.0040a860
mov edi, eax
add esp, 8
test edi, edi
jne 0x41694b
mov eax, dword [esp + 0x770]
test eax, eax
je 0x416d8d
push ebx
push 0x4361e4
push eax
call fcn.0040a873
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x744
ret
mov ebp, dword [esp + 0x768]
xor ebx, ebx
mov eax, ebp
sub eax, ebx
cmp eax, 0x200
jbe 0x416964
mov eax, 0x200
mov ecx, dword [esp + 0x764]
lea edx, [esp + 0x550]
push ecx
push eax
push 1
push edx
call fcn.0040a65f
mov esi, eax
push edi
push esi
lea eax, [esp + 0x568]
push 1
push eax
add ebx, esi
call fcn.0040a8c5
add esp, 0x20
cmp esi, 0x200
je 0x416954
push edi
call fcn.0040a5e2
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x744
ret
lea ecx, [esp + 0x150]
push 0x4361e0
push ecx
call fcn.0040a860
lea edx, [esp + 0x358]
push 0x4361e0
push edx
mov edi, eax
call fcn.0040a860
add esp, 0x10
mov esi, eax
test edi, edi
je 0x416d57
test esi, esi
push edi
je 0x416d5c
push 1
lea eax, [esp + 0x40]
push 0x14
push eax
call fcn.0040a65f
push esi
push 1
lea ecx, [esp + 0x3c]
push 0x14
push ecx
call fcn.0040a65f
push esi
call fcn.0041a6ec
push eax
call fcn.0041a662
mov edx, dword [esp + 0x780]
mov dword [esp + 0x44], eax
push edx
call fcn.004163c0
mov ebp, eax
xor eax, eax
mov dword [esp + 0x3c], eax
add esp, 0x2c
mov dword [esp + 0x14], eax
xor ebx, ebx
mov dword [esp + 0x18], eax
push edi
push 1
lea ecx, [esp + 0x18]
push 0xc
push ecx
call fcn.0040a65f
add esp, 0x10
cmp eax, 1
jne 0x416c48
mov eax, dword [esp + 0x10]
inc ebx
cmp eax, ebp
jne 0x416a40
mov edx, dword [esp + 0x18]
mov ebp, 0x8fffffff
sub ebp, edx
mov edx, dword [esp + 0x14]
mov ecx, eax
sub ebp, edx
and ecx, 3
mov ebx, ebp
shr edx, cl
and eax, 0xf
add ebx, edx
mov edx, dword [esp + 0x768]
lea eax, [eax + ebx + 1]
sub eax, ebp
cmp edx, eax
mov dword [esp + 0x20], eax
ja 0x416b74
push 0
push ebp
push esi
call fcn.0040a776
add esp, 0xc
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x768]
mov edx, dword [esp + 0x1c]
sub eax, edx
cmp eax, 0x200
jbe 0x416ac9
mov eax, 0x200
mov edx, dword [esp + 0x764]
push edx
push eax
lea eax, [esp + 0x558]
push 1
push eax
call fcn.0040a65f
mov ebx, eax
mov eax, dword [esp + 0x2c]
push esi
push ebx
lea ecx, [esp + 0x568]
add eax, ebx
push 1
push ecx
mov dword [esp + 0x3c], eax
call fcn.0040a8c5
add esp, 0x20
cmp ebx, 0x200
je 0x416ab0
push esi
call fcn.0040a5e2
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x770]
mov edx, dword [esp + 0x24]
and ecx, 3
shl eax, cl
mov ecx, dword [esp + 0x76c]
add esp, 4
cmp ecx, edx
mov dword [esp + 0x14], eax
jae 0x416b42
mov ecx, 0x8fffffff
sub ecx, ebp
sub ecx, eax
mov dword [esp + 0x18], ecx
push 1
push 0xfffffffffffffff4
push edi
call fcn.0040a776
push edi
push 1
lea edx, [esp + 0x24]
push 0xc
push edx
call fcn.0040a8c5
push edi
call fcn.0040a5e2
add esp, 0x20
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x744
ret
mov eax, dword [esp + 0x76c]
mov ebx, dword [esp + 0x1c]
shl eax, cl
mov ecx, 0x8fffffff
push 1
push 0xfffffffffffffff4
push edi
sub ecx, eax
mov dword [esp + 0x20], eax
sub ecx, ebx
mov dword [esp + 0x24], ecx
call fcn.0040a776
push edi
push 1
lea edx, [esp + 0x24]
push 0xc
push edx
call fcn.0040a8c5
push edi
call fcn.0040a5e2
push 0
push 0
push esi
call fcn.0040a776
mov edi, dword [esp + 0x60]
push esi
push 1
lea eax, [esp + 0x58]
inc edi
push 0x14
push eax
mov dword [esp + 0x70], edi
call fcn.0040a8c5
push 2
push 0
push esi
call fcn.0040a776
mov ebx, dword [esp + 0x7ac]
add esp, 0x48
xor ebp, ebp
mov eax, dword [esp + 0x768]
sub eax, ebp
cmp eax, 0x200
jbe 0x416bfe
mov eax, 0x200
push ebx
push eax
lea ecx, [esp + 0x558]
push 1
push ecx
call fcn.0040a65f
mov edi, eax
push esi
push edi
lea edx, [esp + 0x568]
push 1
push edx
add ebp, edi
call fcn.0040a8c5
add esp, 0x20
cmp edi, 0x200
je 0x416be9
push esi
call fcn.0040a5e2
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x744
ret
xor eax, eax
mov ecx, ebp
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
and ecx, 3
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x76c]
shl eax, cl
mov ecx, 0x8fffffff
push 2
push 0
push edi
mov dword [esp + 0x1c], ebp
sub ecx, eax
mov dword [esp + 0x20], eax
sub ecx, edx
mov dword [esp + 0x24], ecx
call fcn.0040a776
push edi
push 1
lea edx, [esp + 0x24]
push 0xc
push edx
call fcn.0040a8c5
push 0
push 0
push edi
call fcn.0040a776
push edi
push 1
lea eax, [esp + 0x68]
inc ebx
push 0x14
push eax
mov dword [esp + 0x80], ebx
call fcn.0040a8c5
push 0
push 0
push esi
call fcn.0040a776
mov ebp, dword [esp + 0x78]
add esp, 0x44
lea ecx, [esp + 0x24]
inc ebp
push esi
push 1
push 0x14
push ecx
mov dword [esp + 0x44], ebp
call fcn.0040a8c5
push 2
push 0
push esi
call fcn.0040a776
add esp, 0x1c
xor ebp, ebp
mov eax, dword [esp + 0x768]
sub eax, ebp
cmp eax, 0x200
jbe 0x416d00
mov eax, 0x200
mov edx, dword [esp + 0x764]
push edx
push eax
lea eax, [esp + 0x558]
push 1
push eax
call fcn.0040a65f
mov ebx, eax
push esi
push ebx
lea ecx, [esp + 0x568]
push 1
push ecx
add ebp, ebx
call fcn.0040a8c5
add esp, 0x20
cmp ebx, 0x200
je 0x416ceb
push edi
call fcn.0040a5e2
push esi
call fcn.0040a5e2
add esp, 8
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x744
ret
test esi, esi
je 0x416d64
push esi
call fcn.0040a5e2
add esp, 4
mov eax, dword [esp + 0x770]
test eax, eax
je 0x416d8d
lea edx, [esp + 0x350]
lea ecx, [esp + 0x150]
push edx
push ecx
push 0x4361ac
push eax
call fcn.0040a873
add esp, 0x10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x744
ret