Function at 0x41a874
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff4b8
mov eax, 0x69d2ab
xor edx, edx
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x4c], 0x6b1d3c
mov dword [ebp - 0x48], esp
mov dword [ebp - 0x50], eax
mov word [ebp - 0x44], 0
mov dword [ebp - 0x38], edx
mov ecx, dword fs:[0]
mov dword [ebp - 0x54], ecx
lea eax, [ebp - 0x54]
mov dword fs:[0], eax
lea ebx, [edi + 5]
jmp 0x41a8bc
inc ebx
movsx eax, byte [ebx]
cmp eax, 0x20
je 0x41a8bb
cmp eax, 9
je 0x41a8bb
jmp 0x41a8cc
inc ebx
movsx edx, byte [ebx]
push edx
call fcn.006a2424
pop ecx
test eax, eax
jne 0x41a8cb
jmp 0x41a8dd
inc ebx
movsx eax, byte [ebx]
cmp eax, 0x20
je 0x41a8dc
cmp eax, 9
je 0x41a8dc
xor edx, edx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x58], edx
push ecx
add edi, 5
push 0x6b1a56
push edi
call fcn.006a0b4c
add esp, 0xc
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x41a916
push ebx
call fcn.0069ce0c
pop ecx
test eax, eax
jne 0x41a947
push 0xffffffffffffffff
push 0x4b2
lea edx, [esi + 0x8544]
push edx
call fcn.00415004
add esp, 0xc
push eax
push esi
call fcn.004365c8
add esp, 8
mov ecx, dword [ebp - 0x54]
mov dword fs:[0], ecx
mov eax, ecx
jmp 0x41b194
mov word [ebp - 0x44], 0x14
lea edx, [ebp - 0x60]
lea eax, [ebp - 0x30]
push edx
push ebx
push eax
call fcn.0069a6ec
add esp, 0xc
inc dword [ebp - 0x38]
lea edx, [ebp - 0x30]
push edx
mov ecx, dword [esi + 0x8574]
push ecx
lea eax, [ebp - 0x20]
push eax
call fcn.00410380
add dword [ebp - 0x38], 3
dec dword [ebp - 0x38]
add esp, 0xc
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x41a9f5
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx - 0xc]
inc eax
test eax, eax
je 0x41a9c2
mov ebx, dword [ebp - 0x28]
add ebx, 0xfffffff4
cmp ebx, 0x6ff36c
je 0x41a9b9
cmp ebx, 0x6ff36c
je 0x41a9b2
push ebx
call sub.KERNEL32.DLL_InterlockedDecrement
mov eax, dword [ebx]
inc eax
jmp 0x41a9be
mov eax, 1
jmp 0x41a9be
mov eax, 1
test eax, eax
jne 0x41a9f5
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff4
mov dword [ebp - 0x64], edx
mov edi, dword [ebp - 0x28]
add edi, 0xfffffff4
push edi
call fcn.0067ac7c
pop ecx
xor eax, eax
mov dword [ebp - 0x68], eax
lea ecx, [ebp - 0x30]
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax + 8]
mov dword [ebp - 0x274], edx
mov word [ebp - 0x44], 8
mov byte [ebp - 0x6d], 0
mov byte [ebp - 0x6e], 0
lea eax, [ebp - 0x20]
xor ebx, ebx
push eax
call fcn.004014ac
pop ecx
test al, al
je 0x41aa19
mov byte [ebp - 0x6d], 1
jmp 0x41aa3d
lea edx, [ebp - 0x20]
push edx
call fcn.00401498
pop ecx
test al, al
je 0x41aa2d
mov byte [ebp - 0x6e], 1
jmp 0x41aa3d
lea ecx, [ebp - 0x20]
push ecx
call fcn.00401484
pop ecx
test al, al
je 0x41aa3d
mov bl, 1
mov ecx, 0x3e8
mov eax, dword [ebp - 0x58]
xor edx, edx
div ecx
mov dword [ebp - 0x58], edx
mov ecx, 0x64
mov eax, dword [ebp - 0x58]
xor edx, edx
div ecx
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
cmp eax, 4
je 0x41aa6f
mov edx, dword [ebp - 0x58]
cmp edx, 5
je 0x41aa6f
xor ecx, ecx
jmp 0x41aa74
mov ecx, 1
mov byte [ebp - 0x6f], cl
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x41aa8a
mov edx, dword [ebp - 0x58]
cmp edx, 1
je 0x41aa8a
xor ecx, ecx
jmp 0x41aa8f
mov ecx, 1
mov byte [ebp - 0x70], cl
mov eax, dword [esi + 0x823c]
mov dword [ebp - 0x280], eax
mov byte [ebp - 0xac8], 7
test bl, bl
je 0x41aab0
mov byte [ebp - 0xac8], 0xe
lea edx, [esi + 0x8525]
xor eax, eax
push esi
mov edi, edx
or ecx, 0xffffffff
lea esi, [ebp - 0xa94]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
push esi
lea eax, [esi + 0x8e48]
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
lea esi, [ebp - 0xac6]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x18]
pop esi
mov edi, eax
xor eax, eax
push esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0xa80]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [0x6b369c]
pop esi
test edx, edx
setne cl
mov eax, dword [esi + 0x8240]
and ecx, 1
mov dword [ebp - 0xa84], eax
mov eax, dword [0x6badc0]
test eax, eax
mov byte [ebp - 0xac7], cl
je 0x41ab73
lea edx, [ebp - 0xac8]
push edx
mov ecx, dword [0x6badc0]
push ecx
call fcn.0048ffe0
add esp, 8
mov al, byte [ebp - 0x70]
test al, al
je 0x41ab8b
mov edx, dword [esi + 0x8dcc]
test edx, edx
je 0x41ab8b
mov byte [ebp - 0xac7], 0
mov cl, byte [ebp - 0xac7]
test cl, cl
jne 0x41acd8
push 0xffffffffffffffff
push 0x4b3
lea eax, [esi + 0x8544]
push eax
call fcn.00415004
add esp, 0xc
push eax
push esi
call fcn.004365c8
add esp, 8
dec dword [ebp - 0x38]
dec dword [ebp - 0x38]
mov edx, dword [ebp - 8]
test edx, edx
je 0x41ac35
mov ecx, dword [ebp - 8]
mov eax, dword [ecx - 0xc]
inc eax
test eax, eax
je 0x41ac02
mov ebx, dword [ebp - 8]
add ebx, 0xfffffff4
cmp ebx, 0x6ff36c
je 0x41abf9
cmp ebx, 0x6ff36c
je 0x41abf2
push ebx
call sub.KERNEL32.DLL_InterlockedDecrement
mov eax, dword [ebx]
inc eax
jmp 0x41abfe
mov eax, 1
jmp 0x41abfe
mov eax, 1
test eax, eax
jne 0x41ac35
mov edx, dword [ebp - 8]
add edx, 0xfffffff4
mov dword [ebp - 0x74], edx
mov edi, dword [ebp - 8]
add edi, 0xfffffff4
push edi
call fcn.0067ac7c
pop ecx
xor eax, eax
mov dword [ebp - 0x78], eax
lea ecx, [ebp - 0x10]
mov edx, dword [ebp - 0x78]
mov dword [ebp - 8], edx
mov dword [ebp - 0x7c], ecx
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax + 8]
mov dword [ebp - 0xad0], edx
dec dword [ebp - 0x38]
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x41acca
mov eax, dword [ebp - 0x18]
mov edx, dword [eax - 0xc]
inc edx
test edx, edx
je 0x41ac7f
mov esi, dword [ebp - 0x18]
add esi, 0xfffffff4
cmp esi, 0x6ff36c
je 0x41ac76
cmp esi, 0x6ff36c
je 0x41ac6f
push esi
call sub.KERNEL32.DLL_InterlockedDecrement
mov eax, dword [esi]
inc eax
jmp 0x41ac7b
mov eax, 1
jmp 0x41ac7b
mov eax, 1
test eax, eax
jne 0x41acca
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff4
mov dword [ebp - 0x80], edx
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff4
mov dword [ebp - 0x84], ecx
mov eax, dword [ebp - 0x84]
push eax
call fcn.0067ac7c
pop ecx
xor edx, edx
mov dword [ebp - 0x88], edx
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x8c], eax
mov edx, dword [ebp - 0x8c]
mov ecx, dword [edx + 8]
mov dword [ebp - 0xae0], ecx
mov eax, dword [ebp - 0x54]
mov dword fs:[0], eax
jmp 0x41b194
mov dl, byte [ebp - 0x6d]
test dl, dl
jne 0x41acf2
test bl, bl
jne 0x41ae6d
mov cl, byte [ebp - 0x6e]
test cl, cl
jne 0x41ae6d
mov eax, dword [ebp - 8]
push eax
push 0xffffffffffffffff
push 0x4b4
lea edx, [esi + 0x8544]
push edx
call fcn.00415004
add esp, 0xc
push eax
lea ecx, [ebp - 0x24c]
push ecx
call fcn.006a0ad0
add esp, 0xc
lea eax, [ebp - 0x24c]
push eax
push esi
call fcn.004365c8
add esp, 8
dec dword [ebp - 0x38]
dec dword [ebp - 0x38]
mov edx, dword [ebp - 8]
test edx, edx
je 0x41adc7
mov ecx, dword [ebp - 8]
mov eax, dword [ecx - 0xc]
inc eax
test eax, eax
je 0x41ad79
mov ebx, dword [ebp - 8]
add ebx, 0xfffffff4
cmp ebx, 0x6ff36c
je 0x41ad70
cmp ebx, 0x6ff36c
je 0x41ad69
push ebx
call sub.KERNEL32.DLL_InterlockedDecrement
mov eax, dword [ebx]
inc eax
jmp 0x41ad75
mov eax, 1
jmp 0x41ad75
mov eax, 1
test eax, eax
jne 0x41adc7
mov edx, dword [ebp - 8]
add edx, 0xfffffff4
mov dword [ebp - 0x90], edx
mov ecx, dword [ebp - 8]
add ecx, 0xfffffff4
mov dword [ebp - 0x94], ecx
mov eax, dword [ebp - 0x94]
push eax
call fcn.0067ac7c
pop ecx
xor edx, edx
mov dword [ebp - 0x98], edx
lea eax, [ebp - 0x10]
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x9c], eax
mov edx, dword [ebp - 0x9c]
mov ecx, dword [edx + 8]
mov dword [ebp - 0xaf0], ecx
dec dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x41ae5f
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx - 0xc]
inc ecx
test ecx, ecx
je 0x41ae11
mov esi, dword [ebp - 0x18]
add esi, 0xfffffff4
cmp esi, 0x6ff36c
je 0x41ae08
cmp esi, 0x6ff36c
je 0x41ae01
push esi
call sub.KERNEL32.DLL_InterlockedDecrement
mov eax, dword [esi]
inc eax
jmp 0x41ae0d
mov eax, 1
jmp 0x41ae0d
mov eax, 1
test eax, eax
jne 0x41ae5f
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff4
mov dword [ebp - 0xa0], edx
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff4
mov dword [ebp - 0xa4], ecx
mov eax, dword [ebp - 0xa4]
push eax
call fcn.0067ac7c
pop ecx
xor edx, edx
mov dword [ebp - 0xa8], edx
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xac], eax
mov edx, dword [ebp - 0xac]
mov ecx, dword [edx + 8]
mov dword [ebp - 0xb00], ecx
mov eax, dword [ebp - 0x54]
mov dword fs:[0], eax
jmp 0x41b194
mov bl, 1
mov eax, dword [ebp - 0x18]
push eax
call sub.KERNEL32.DLL_GetFileAttributesA
mov edi, eax
cmp edi, 0xffffffff
jne 0x41ae81
xor ebx, ebx
test bl, bl
je 0x41aeb5
mov al, byte [ebp - 0x6f]
test al, al
je 0x41ae91
or edi, 1
jmp 0x41ae94
and edi, 0xfffffffe
mov dl, byte [ebp - 0x70]
test dl, dl
je 0x41aea0
or edi, 2
jmp 0x41aea3
and edi, 0xfffffffd
push edi
mov ecx, dword [ebp - 0x18]
push ecx
call sub.KERNEL32.DLL_SetFileAttributesA
test eax, eax
setne bl
and ebx, 1
test bl, bl
jne 0x41b038
mov eax, dword [ebp - 8]
push eax
push 0xffffffffffffffff
push 0x4b5
lea edx, [esi + 0x8544]
push edx
call fcn.00415004
add esp, 0xc
push eax
lea ecx, [ebp - 0x24c]
push ecx
call fcn.006a0ad0
add esp, 0xc
lea eax, [ebp - 0x24c]
push eax
push esi
call fcn.004365c8
add esp, 8
dec dword [ebp - 0x38]
dec dword [ebp - 0x38]
mov edx, dword [ebp - 8]
test edx, edx
je 0x41af92
mov ecx, dword [ebp - 8]
mov eax, dword [ecx - 0xc]
inc eax
test eax, eax
je 0x41af44
mov ebx, dword [ebp - 8]
add ebx, 0xfffffff4
cmp ebx, 0x6ff36c
je 0x41af3b
cmp ebx, 0x6ff36c
je 0x41af34
push ebx
call sub.KERNEL32.DLL_InterlockedDecrement
mov eax, dword [ebx]
inc eax
jmp 0x41af40
mov eax, 1
jmp 0x41af40
mov eax, 1
test eax, eax
jne 0x41af92
mov edx, dword [ebp - 8]
add edx, 0xfffffff4
mov dword [ebp - 0xb0], edx
mov ecx, dword [ebp - 8]
add ecx, 0xfffffff4
mov dword [ebp - 0xb4], ecx
mov eax, dword [ebp - 0xb4]
push eax
call fcn.0067ac7c
pop ecx
xor edx, edx
mov dword [ebp - 0xb8], edx
lea eax, [ebp - 0x10]
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 8], ecx
mov dword [ebp - 0xbc], eax
mov edx, dword [ebp - 0xbc]
mov ecx, dword [edx + 8]
mov dword [ebp - 0xb10], ecx
dec dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x41b02a
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx - 0xc]
inc ecx
test ecx, ecx
je 0x41afdc
mov esi, dword [ebp - 0x18]
add esi, 0xfffffff4
cmp esi, 0x6ff36c
je 0x41afd3
cmp esi, 0x6ff36c
je 0x41afcc
push esi
call sub.KERNEL32.DLL_InterlockedDecrement
mov eax, dword [esi]
inc eax
jmp 0x41afd8
mov eax, 1
jmp 0x41afd8
mov eax, 1
test eax, eax
jne 0x41b02a
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff4
mov dword [ebp - 0xc0], edx
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff4
mov dword [ebp - 0xc4], ecx
mov eax, dword [ebp - 0xc4]
push eax
call fcn.0067ac7c
pop ecx
xor edx, edx
mov dword [ebp - 0xc8], edx
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xcc], eax
mov edx, dword [ebp - 0xcc]
mov ecx, dword [edx + 8]
mov dword [ebp - 0xb20], ecx
mov eax, dword [ebp - 0x54]
mov dword fs:[0], eax
jmp 0x41b194
push 0xffffffffffffffff
push 0x4b6
lea edx, [esi + 0x8544]
push edx
call fcn.00415004
add esp, 0xc
push eax
push esi
call fcn.004365c8
add esp, 8
dec dword [ebp - 0x38]
dec dword [ebp - 0x38]
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x41b0f3
mov eax, dword [ebp - 8]
mov edx, dword [eax - 0xc]
inc edx
test edx, edx
je 0x41b0a5
mov ebx, dword [ebp - 8]
add ebx, 0xfffffff4
cmp ebx, 0x6ff36c
je 0x41b09c
cmp ebx, 0x6ff36c
je 0x41b095
push ebx
call sub.KERNEL32.DLL_InterlockedDecrement
mov eax, dword [ebx]
inc eax
jmp 0x41b0a1
mov eax, 1
jmp 0x41b0a1
mov eax, 1
test eax, eax
jne 0x41b0f3
mov edx, dword [ebp - 8]
add edx, 0xfffffff4
mov dword [ebp - 0xd0], edx
mov ecx, dword [ebp - 8]
add ecx, 0xfffffff4
mov dword [ebp - 0xd4], ecx
mov eax, dword [ebp - 0xd4]
push eax
call fcn.0067ac7c
pop ecx
xor edx, edx
mov dword [ebp - 0xd8], edx
lea eax, [ebp - 0x10]
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 8], ecx
mov dword [ebp - 0xdc], eax
mov edx, dword [ebp - 0xdc]
mov ecx, dword [edx + 8]
mov dword [ebp - 0xb30], ecx
dec dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x41b18b
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx - 0xc]
inc ecx
test ecx, ecx
je 0x41b13d
mov ebx, dword [ebp - 0x18]
add ebx, 0xfffffff4
cmp ebx, 0x6ff36c
je 0x41b134
cmp ebx, 0x6ff36c
je 0x41b12d
push ebx
call sub.KERNEL32.DLL_InterlockedDecrement
mov eax, dword [ebx]
inc eax
jmp 0x41b139
mov eax, 1
jmp 0x41b139
mov eax, 1
test eax, eax
jne 0x41b18b
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff4
mov dword [ebp - 0xe0], edx
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff4
mov dword [ebp - 0xe4], ecx
mov eax, dword [ebp - 0xe4]
push eax
call fcn.0067ac7c
pop ecx
xor edx, edx
mov dword [ebp - 0xe8], edx
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0xe8]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xec], eax
mov edx, dword [ebp - 0xec]
mov ecx, dword [edx + 8]
mov dword [ebp - 0xb40], ecx
mov eax, dword [ebp - 0x54]
mov dword fs:[0], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret