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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5aef81
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push ebx
push esi
push edi
mov eax, dword [0x620024]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0
cmp byte [0x62b652], 0
je 0x426f13
mov byte [0x62b652], 0
mov byte [ebp - 4], 1
mov eax, dword [0x62b984]
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x426e3d
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x426e53
call fcn.00449b3d
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x427564
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x14], eax
mov eax, dword [0x62b984]
push 0xf
push 0x5f4038
push dword [eax - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00416370
mov esi, dword [ebp - 0x14]
add esp, 0x14
test esi, esi
jne 0x426e91
mov dword [ebp - 0x14], 0xffffffff
jmp 0x426ec4
mov eax, dword [ebx + 0x50]
cmp dword [eax - 0xc], 0
jge 0x426ea3
mov dword [ebp - 0x14], 0xffffffff
jmp 0x426ec4
push esi
push eax
call fcn.00587a39
mov ecx, eax
add esp, 8
test ecx, ecx
jne 0x426ebc
mov dword [ebp - 0x14], 0xffffffff
jmp 0x426ec4
sub ecx, dword [ebx + 0x50]
sar ecx, 1
mov dword [ebp - 0x14], ecx
or edi, 0xffffffff
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 0
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x426ee9
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x14], 0
jne 0x426f16
mov eax, dword [ebx + 0x50]
push ecx
sub eax, 0x10
mov esi, esp
push eax
mov dword [ebp - 0x30], esi
call fcn.00405670
add esp, 4
add eax, 0x10
mov dword [esi], eax
call fcn.004275b0
add esp, 4
jmp 0x426f16
or edi, 0xffffffff
cmp byte [0x62b64f], 0
je 0x427016
mov byte [0x62b64f], 0
mov byte [ebp - 4], 2
mov eax, dword [0x62b984]
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x426f45
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x426f5b
call fcn.00449b3d
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x42756e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], 2
mov dword [ebp - 0x14], eax
mov eax, dword [0x62b984]
push 0xf
push 0x5f4058
push dword [eax - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00416370
mov esi, dword [ebp - 0x14]
add esp, 0x14
test esi, esi
jne 0x426f99
mov dword [ebp - 0x14], 0xffffffff
jmp 0x426fcc
mov eax, dword [ebx + 0x50]
cmp dword [eax - 0xc], 0
jge 0x426fab
mov dword [ebp - 0x14], 0xffffffff
jmp 0x426fcc
push esi
push eax
call fcn.00587a39
mov ecx, eax
add esp, 8
test ecx, ecx
jne 0x426fc4
mov dword [ebp - 0x14], 0xffffffff
jmp 0x426fcc
sub ecx, dword [ebx + 0x50]
sar ecx, 1
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], 0
add esi, 0xfffffff0
mov byte [ebp - 4], 0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x426fee
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x14], 0
jne 0x427016
mov eax, dword [ebx + 0x50]
push ecx
sub eax, 0x10
mov esi, esp
push eax
mov dword [ebp - 0x30], esi
call fcn.00405670
add esp, 4
add eax, 0x10
mov dword [esi], eax
call fcn.004275b0
add esp, 4
mov dword [ebp - 0x4c], vtable.CArray_class__DataStream__class__DataStream__.0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], 0
mov byte [ebp - 4], 3
call fcn.00449b3d
mov ecx, eax
test ecx, ecx
je 0x427578
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], eax
call fcn.00403200
xorps xmm0, xmm0
mov byte [ebp - 0x54], 0
movlpd qword [ebp - 0x5c], xmm0
mov byte [ebp - 4], 4
mov ecx, dword [ebx + 0x50]
mov eax, dword [ebp - 0x64]
lea edx, [ecx - 0x10]
lea esi, [eax - 0x10]
cmp edx, esi
je 0x4270c7
cmp dword [esi + 0xc], 0
jl 0x4270b8
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x4270b8
push edx
call fcn.00405670
add esp, 4
mov dword [ebp - 0x20], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4270b0
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x20]
add eax, 0x10
mov dword [ebp - 0x64], eax
jmp 0x4270c7
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x64]
call fcn.00402d30
mov eax, dword [ebp - 0x64]
push eax
mov byte [ebp - 0x54], 1
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x427367
call fcn.00449b3d
mov ecx, eax
test ecx, ecx
je 0x427582
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 5
call fcn.00426420
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
je 0x427261
mov byte [ebp - 4], 6
mov ecx, dword [eax - 0x10]
test ecx, ecx
je 0x427126
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x42713c
call fcn.00449b3d
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x42758c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], 4
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
push dword [eax - 0xc]
push eax
push 2
lea eax, [ebp - 0x1c]
push 0x5f61a0
push eax
call fcn.00416370
add esp, 0x14
mov byte [ebp - 4], 7
mov esi, dword [ebp - 0x1c]
mov ecx, dword [esi - 0x10]
lea eax, [esi - 0x10]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x427187
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, eax
test ecx, ecx
jne 0x42719d
call fcn.00449b3d
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
mov ecx, eax
test ecx, ecx
je 0x427596
mov eax, dword [ecx]
call dword [eax + 0xc]
push 1
push 0x5f619c
push dword [esi - 0xc]
add eax, 0x10
mov dword [ebp - 0x18], 0xc
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push esi
push eax
call fcn.00416370
mov eax, dword [ebp - 0x20]
add esp, 0x14
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 0x28], edx
lea esi, [eax - 0x10]
cmp esi, edx
je 0x427227
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
mov dword [ebp - 0x24], ecx
jl 0x42721b
mov ecx, dword [esi]
cmp ecx, dword [edx]
jne 0x42721b
push esi
call fcn.00405670
mov edx, dword [ebp - 0x24]
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x427213
mov edx, dword [ebp - 0x28]
push edx
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x2c]
add eax, 0x10
mov dword [ebp - 0x14], eax
jmp 0x427227
push dword [eax - 0xc]
lea ecx, [ebp - 0x14]
push eax
call fcn.00402d30
mov dword [ebp - 0x18], 4
mov eax, edi
mov byte [ebp - 4], 6
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x427246
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x30]
mov eax, edi
mov byte [ebp - 4], 5
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x427261
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00415f10
add esp, 0xc
mov byte [ebp - 4], 8
mov ecx, dword [eax]
mov esi, dword [ebp - 0x14]
add esi, 0xfffffff0
lea edx, [ecx - 0x10]
cmp edx, esi
je 0x4272cd
cmp dword [esi + 0xc], 0
jl 0x4272c1
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x4272c1
push edx
call fcn.00405670
add esp, 4
mov dword [ebp - 0x30], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4272b9
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x30]
add eax, 0x10
mov dword [ebp - 0x14], eax
jmp 0x4272cd
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x14]
call fcn.00402d30
mov byte [ebp - 4], 5
mov eax, edi
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4272eb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x14]
lea ecx, [ebx + 0x18c]
push eax
push dword [ecx + 8]
call fcn.0044c8e6
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42731b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 3
call fcn.00403200
mov eax, dword [ebp - 0x64]
xorps xmm0, xmm0
mov byte [ebp - 0x54], 0
movlpd qword [ebp - 0x5c], xmm0
lea edx, [eax - 0x10]
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x42734b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x4c]
call fcn.00429b10
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80
push dword [ebp - 0x64]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov al, byte [0x62b64e]
test al, al
je 0x427479
test esi, 0x4a00
je 0x42745b
mov ecx, ebx
call fcn.00432140
test eax, eax
jne 0x4273b0
lea eax, [ebp - 0x64]
lea ecx, [ebx + 0x18c]
push eax
push dword [ecx + 8]
call fcn.0044c8e6
jmp 0x42731b
cmp eax, 3
jne 0x427405
call fcn.00449b3d
mov ecx, eax
test ecx, ecx
je 0x4275a0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 9
lea eax, [ebp - 0x18]
push dword [ebp - 0x64]
push str._s__Administrator_privileges_required_
push eax
call fcn.00402b00
add esp, 0xc
lea eax, [ebp - 0x18]
lea ecx, [ebx + 0x18c]
push eax
push dword [ecx + 8]
call fcn.0044c8e6
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x18]
jmp 0x427304
cmp eax, 1
jne 0x427456
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 3
call fcn.00403200
mov edx, dword [ebp - 0x64]
xorps xmm0, xmm0
movlpd qword [ebp - 0x5c], xmm0
add edx, 0xfffffff0
mov byte [ebp - 0x54], 0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x42743a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x4c]
call fcn.00429b10
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [0x62b64e]
test al, al
je 0x427479
test byte [ebx + 0x1fc], 4
je 0x427479
mov edx, dword [ebp - 0x64]
lea eax, [ebp - 0x4c]
push eax
mov ecx, ebx
call fcn.00433610
add esp, 4
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x4c]
call fcn.00429a60
lea edx, [ebp - 0x4c]
mov ecx, ebx
call fcn.00426740
test al, al
je 0x42731b
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ecx - 0xc]
call fcn.0041ba40
add esp, 4
mov byte [ebp - 4], 3
test eax, eax
lea ecx, [ebp - 0x64]
setns bl
call fcn.00403200
mov eax, dword [ebp - 0x64]
xorps xmm0, xmm0
movlpd qword [ebp - 0x5c], xmm0
add eax, 0xfffffff0
mov byte [ebp - 0x54], 0
lock xadd dword [eax + 0xc], edi
dec edi
test edi, edi
jg 0x4274db
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
lea ecx, [ebp - 0x4c]
call fcn.00429b10
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00403300
push 0x80004005
call fcn.00403300
push 0x80004005
call fcn.00403300
push 0x80004005
call fcn.00403300
push 0x80004005
call fcn.00403300
push 0x80004005
call fcn.00403300
push 0x80004005
call fcn.00403300
int3