Function at 0x64c854
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe78
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x188], ebx
mov dword [ebp - 0x184], ebx
mov dword [ebp - 0x180], ebx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
call fcn.004053a4
mov eax, dword [ebp + 0x14]
call fcn.004053a4
lea eax, [ebp - 0x17c]
mov edx, dword [0x408acc]
call fcn.00405a68
xor eax, eax
push ebp
push 0x64d10a
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x16], 0
mov dword [ebp - 0x1c], 0x20
lea ecx, [ebp - 0x17c]
mov edx, 0x3f
mov eax, dword [ebp - 0x14]
call fcn.0040a488
test eax, eax
jne 0x64c95d
mov eax, dword [ebp - 0x174]
mov edx, eax
and edx, 1
dec edx
jne 0x64c8e7
mov ebx, 1
jmp 0x64c8e9
xor ebx, ebx
mov edx, eax
and edx, 2
cmp edx, 2
jne 0x64c8f6
xor ebx, 2
test ebx, ebx
je 0x64c952
mov esi, eax
xor esi, ebx
mov dword [ebp - 0x1c], esi
cmp eax, dword [ebp - 0x1c]
je 0x64c952
mov dword [ebp - 0x1c], eax
push esi
mov eax, dword [ebp - 0x14]
call fcn.004053b4
push eax
call sub.kernel32.dll_SetFileAttributesA
test eax, eax
jne 0x64c94e
lea eax, [ebp - 0x180]
mov ecx, dword [ebp - 0x14]
mov edx, 0x64d128
call fcn.00405200
mov eax, dword [ebp - 0x180]
call fcn.00649e54
mov byte [ebp - 0x15], 0
lea eax, [ebp - 0x17c]
call fcn.0040a4fc
jmp 0x64d0c0
mov byte [ebp - 0x16], 1
lea eax, [ebp - 0x17c]
call fcn.0040a4fc
mov byte [ebp - 0x15], 1
mov eax, dword [ebp - 0x14]
call fcn.0064a768
mov ebx, eax
xor eax, eax
mov al, bl
cmp eax, 0x19
ja case.0x64c97e.0
mov al, byte [eax + 0x64c985]
jmp dword [eax*4 + 0x64c99f]
mov eax, dword [ebp + 0x10]
sub eax, 1
jb 0x64c9cb
sub eax, 2
jb 0x64c9d7
je 0x64c9e3
dec eax
je 0x64c9ef
jmp 0x64c9fb
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.0042f96c
jmp 0x64ca05
mov dl, 2
mov eax, dword [ebp - 0xc]
call fcn.0042f96c
jmp 0x64ca05
mov dl, 3
mov eax, dword [ebp - 0xc]
call fcn.0042f96c
jmp 0x64ca05
mov dl, 5
mov eax, dword [ebp - 0xc]
call fcn.0042f96c
jmp 0x64ca05
mov dl, 6
mov eax, dword [ebp - 0xc]
call fcn.0042f96c
xor eax, eax
push ebp
push 0x64ca2b
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x50]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x64d086
mov dl, 1
mov eax, dword [0x4ff7f4]
call fcn.0050bac4
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x44], 2
mov eax, dword [ebp - 0x10]
sub eax, 1
jb 0x64ca63
je 0x64ca6c
dec eax
je 0x64ca75
jmp 0x64ca7e
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x3e], 1
jmp 0x64ca85
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x3e], 6
jmp 0x64ca85
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x3e], 7
jmp 0x64ca85
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x3e], 8
xor eax, eax
push ebp
push 0x64cab3
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx + 8]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx + 0x50]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x64cac1
mov eax, dword [ebp - 0x20]
call fcn.00404084
jmp 0x64d086
push ebp
call fcn.0064c4d8
pop ecx
mov byte [ebp - 0x15], al
jmp 0x64d086
xor ecx, ecx
mov dl, 1
mov eax, dword [0x56ec44]
call fcn.0056fd9c
mov dword [ebp - 8], eax
xor edx, edx
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x138]
mov edx, 0xffffff
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
xor eax, eax
push ebp
push 0x64d009
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0xd4]
pop edx
call fcn.00620f24
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0xd4]
pop edx
call fcn.006210e4
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0xd4]
call fcn.00626f1c
xor ecx, ecx
xor edx, edx
call fcn.004293d4
cmp dword [ebp + 0x14], 0
je 0x64cb7c
mov eax, dword [ebp + 0x14]
call fcn.0040a414
test al, al
jne 0x64cb80
xor eax, eax
jmp 0x64cb82
mov al, 1
mov byte [ebp - 1], al
cmp byte [ebp - 1], 0
je 0x64cbb2
mov eax, dword [ebp - 8]
call fcn.005796f4
push eax
lea eax, [ebp - 0x184]
mov edx, dword [ebp + 0x14]
call fcn.00405764
mov edx, dword [ebp - 0x184]
pop eax
mov si, 0xffe8
call fcn.0040428c
cmp dword [ebp + 0xc], 0
jle 0x64cbce
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov edx, dword [ebp + 0xc]
call fcn.005f850c
cmp dword [ebp + 8], 0
jle 0x64cbea
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov edx, dword [ebp + 8]
call fcn.005f853c
mov eax, dword [ebp + 0x10]
cmp eax, 4
ja case.default.0x64cbf6
jmp dword [eax*4 + 0x64cbfd]
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 8], 1
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x10], 1
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x568], 1
jmp 0x64cdb3
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 8], 2
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x10], 1
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x568], 2
jmp 0x64cdb3
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 8], 4
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x10], 1
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x568], 4
jmp 0x64cdb3
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 8], 8
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x10], 1
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x568], 8
jmp 0x64cdb3
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 8], 8
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x10], 2
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x568], 0x18
jmp 0x64cdb3
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 8], 8
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x10], 3
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x568], 0x18
cmp dword [ebp - 0x10], 0xffffffff
je 0x64cee0
mov eax, ebx
sub al, 3
je 0x64cdd4
sub al, 3
je 0x64cdf0
sub al, 4
je 0x64cec0
jmp case.default.0x64cdfc
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x138], edx
jmp case.default.0x64cdfc
mov eax, dword [ebp - 0x10]
cmp eax, 6
ja case.default.0x64cdfc
jmp dword [eax*4 + 0x64ce03]
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov byte [eax + 0x3c], 0
jmp case.default.0x64cdfc
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov byte [eax + 0x3c], 1
jmp case.default.0x64cdfc
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov byte [eax + 0x3c], 2
jmp case.default.0x64cdfc
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov byte [eax + 0x3c], 3
jmp case.default.0x64cdfc
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov byte [eax + 0x3c], 4
jmp case.default.0x64cdfc
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov byte [eax + 0x3c], 5
jmp case.default.0x64cdfc
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov byte [eax + 0x3c], 8
jmp case.default.0x64cdfc
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
fild dword [ebp - 0x10]
fdiv dword [0x64d16c]
fstp qword [eax + 0x108]
wait
jmp case.default.0x64cdfc
cmp byte [ebp - 1], 0
jne case.default.0x64cdfc
mov eax, ebx
sub al, 3
je 0x64cef6
sub al, 3
je 0x64cf10
sub al, 4
je 0x64cf24
jmp case.default.0x64cdfc
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x138], 7
jmp case.default.0x64cdfc
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov byte [eax + 0x3c], 5
jmp case.default.0x64cdfc
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x108], 0x33333333
mov dword [eax + 0x10c], 0x3feb3333
cmp bl, 0x19
jne 0x64cfd8
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ebx, eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x20]
cmp ebx, eax
jle 0x64cf71
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x20]
mov ebx, eax
jmp 0x64cf7b
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov ebx, eax
cmp ebx, 0x40
jl 0x64cf87
mov ebx, 0x40
jmp 0x64cfb0
cmp ebx, 0x30
jl 0x64cf93
mov ebx, 0x30
jmp 0x64cfb0
cmp ebx, 0x20
jl 0x64cf9f
mov ebx, 0x20
jmp 0x64cfb0
cmp ebx, 0x18
jl 0x64cfab
mov ebx, 0x18
jmp 0x64cfb0
mov ebx, 0x10
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x4e8], ebx
mov eax, dword [ebp - 8]
call fcn.005796f4
mov eax, dword [eax + 0xdc]
mov dword [eax + 0x4ec], ebx
mov eax, dword [ebp - 8]
call fcn.005796f4
push eax
lea eax, [ebp - 0x188]
mov edx, dword [ebp - 0x14]
call fcn.00405764
mov edx, dword [ebp - 0x188]
pop eax
mov si, 0xffec
call fcn.0040428c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x64d017
mov eax, dword [ebp - 8]
call fcn.00404084
jmp 0x64d086
mov dl, 1
mov eax, dword [0x427788]
call fcn.0042c754
mov dword [ebp - 0x24], eax
xor eax, eax
push ebp
push 0x64d06a
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc]
call fcn.0064b5bc
cmp bl, 0x18
sete al
mov edx, dword [ebp - 0x24]
mov byte [edx + 0x2c], al
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx + 0x50]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x64d078
mov eax, dword [ebp - 0x24]
call fcn.00404084
jmp 0x64d086
mov byte [ebp - 0x15], 0
cmp byte [ebp - 0x16], 0
je 0x64d0c0
lea ecx, [ebp - 0x17c]
mov edx, 0x3f
mov eax, dword [ebp - 0x14]
call fcn.0040a488
test eax, eax
jne 0x64d0c0
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x14]
call fcn.004053b4
push eax
call sub.kernel32.dll_SetFileAttributesA
lea eax, [ebp - 0x17c]
call fcn.0040a4fc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x64d111
lea eax, [ebp - 0x188]
mov edx, 2
call fcn.00405628
lea eax, [ebp - 0x180]
call fcn.00404ef4
lea eax, [ebp - 0x17c]
mov edx, dword [0x408acc]
call fcn.00405b38
lea eax, [ebp - 0x14]
call fcn.00404ef4
lea eax, [ebp + 0x14]
call fcn.00404ef4
ret