Function at 0x567caf
Capabilities:
Get common file path
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1e4
xor eax, eax
push ebx
cmp dword [0x6be5b0], eax
push esi
push edi
mov byte [ebp - 1], 0x20
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x1c], eax
jne 0x568167
cmp word [0x6b9c78], ax
jne 0x567e48
cmp dword [ebp + 0x10], 5
jne 0x568167
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [0x6b9c74]
test eax, eax
mov dword [ebp - 0x18], esi
je 0x567d20
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.005a9f6b
pop ecx
test ax, ax
pop ecx
jne 0x568106
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x568106
mov ebx, dword [ebp + 0x18]
test ebx, ebx
jle 0x568106
xor eax, eax
test ebx, ebx
jle 0x567d4b
cmp byte [eax + edi], 0x20
jb 0x568106
inc eax
cmp eax, ebx
jl 0x567d3c
mov eax, dword [0x6b9c70]
test eax, eax
je 0x567d99
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.005a9f6b
mov esi, eax
pop ecx
test esi, esi
pop ecx
je 0x567d99
xor edx, edx
test ebx, ebx
jle 0x567d92
mov cl, byte [edx + edi]
movzx ebx, byte [esi + 0x18]
movsx eax, cl
cmp eax, ebx
jne 0x567d80
mov byte [edx + edi], 0x20
jmp 0x567d8c
cmp cl, 0x20
jbe 0x567d8c
mov al, 0x20
sub al, cl
mov byte [edx + edi], al
inc edx
cmp edx, dword [ebp + 0x18]
jl 0x567d6c
mov eax, dword [esi]
jmp 0x56816a
push dword [ebp + 0x1c]
call fcn.0048d44a
movzx esi, ax
lea eax, [ebp - 0x28]
push 4
push eax
push str.technology
push dword [ebp + 8]
call sub.CoolType.dll_Ordinal_17
mov ebx, eax
add esp, 0x14
cmp ebx, 1
jne 0x567e1a
lea eax, [ebp - 0x90]
push 0x3c
push eax
push str.winlogfont
push dword [ebp + 8]
call sub.CoolType.dll_Ordinal_17
mov edi, dword [ebp - 0x28]
add esp, 0x10
test eax, eax
mov edx, 0x8c
je 0x567dee
cmp esi, edx
jne 0x567dee
cmp edi, ebx
je 0x567e18
test eax, eax
mov ecx, 0x8a
je 0x567dff
cmp esi, ecx
jne 0x567dff
test edi, edi
je 0x567e18
cmp esi, 0x88
je 0x567e0f
cmp esi, ecx
je 0x567e0f
cmp esi, edx
jne 0x567e18
test edi, edi
je 0x567e1a
cmp edi, 1
je 0x567e1a
xor ebx, ebx
test ebx, ebx
jne 0x567e48
cmp dword [0x6b9c74], ebx
jne 0x567e2b
call fcn.00568187
cmp dword [0x6b9c74], 0
mov dword [ebp - 0x38], 1
jne 0x567e40
call fcn.00568187
lea eax, [ebp - 0x38]
jmp 0x568154
call fcn.005989f0
mov ecx, dword [eax]
xor ebx, ebx
mov dword [ebp - 0xe0], ecx
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0x34], eax
mov dword [eax], ecx
lea eax, [ebp - 0xd0]
push ebx
push eax
call fcn.005ed658
pop ecx
test eax, eax
pop ecx
jne 0x56810a
push dword [ebp + 0x1c]
call fcn.004fe6f0
mov edi, eax
pop ecx
cmp edi, ebx
mov dword [ebp - 8], edi
mov esi, 0x104
je 0x567f1e
cmp dword [edi + 0x80], ebx
je 0x567ef6
mov eax, dword [0x6b567c]
cmp eax, ebx
je 0x567ede
push 0xc
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 1
pop ebx
cmp eax, ebx
jne 0x567ee1
push dword [edi + 0x80]
call fcn.0059bd1f
cmp ax, 0x1a2
pop ecx
je 0x567ef6
push dword [edi + 0x80]
call fcn.0059bd1f
pop ecx
cmp ax, si
jmp 0x567ef1
push 1
pop ebx
push dword [edi + 0x80]
call fcn.0059bd1f
pop ecx
cmp ax, 0x1a2
je 0x567ef6
mov dword [ebp - 0x1c], ebx
xor ebx, ebx
mov eax, dword [edi]
test eax, eax
je 0x567f0b
push eax
call fcn.0059bd1f
cmp ax, 0x1a2
pop ecx
je 0x567f19
inc ebx
add edi, 4
cmp ebx, 0xff
jl 0x567ef8
jmp 0x567f1c
mov byte [ebp - 1], bl
xor ebx, ebx
cmp word [ebp - 0x1c], bx
je 0x567f2f
push 0x20030001
call fcn.00598a7e
pop ecx
cmp dword [0x6b9c70], ebx
jne 0x567f3c
call fcn.0056816f
push esi
push 1
call fcn.005a0894
mov edi, eax
push esi
push 1
mov dword [ebp - 0x10], edi
call fcn.005a0894
add esp, 0x10
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x1e4]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov esi, dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
mov ebx, eax
push edi
push 0
lea eax, [ebp - 0x1e4]
push 0x696af4
push eax
call esi
push dword [ebp - 0xc]
inc eax
push eax
lea eax, [ebp - 0x1e4]
push 0x695b54
push eax
call esi
push dword [ebp - 8]
add ebx, edi
lea eax, [ebp - 0x2a]
push ebx
push edi
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0056819f
add esp, 0x18
test ax, ax
jne 0x567fba
push 0x20030001
call fcn.00598a7e
pop ecx
cmp dword [ebp - 8], 0
je 0x567fc9
push dword [ebp - 8]
call fcn.004fe7ee
pop ecx
lea eax, [ebp - 0x90]
xor edi, edi
push 0x3c
push eax
mov dword [ebp - 8], edi
call fcn.005a0047
lea eax, [ebp - 0x90]
push eax
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.0053d63d
mov esi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
add esp, 0x14
push 2
push dword [ebp - 0x10]
call esi
push 2
push dword [ebp - 0xc]
call esi
push 0x58
push 1
call fcn.005a0894
mov ebx, eax
push 0xf
pop ecx
lea esi, [ebp - 0x90]
mov dword [ebx], 0x567c6d
mov dword [ebx + 0xc], edi
mov dword [ebx + 8], edi
lea edi, [ebx + 0x10]
rep movsd dword es:[edi], dword [esi]
push ebx
mov dword [ebp - 0x20], ebx
mov word [ebx + 0x4c], 0x7fff
call fcn.004ed253
mov esi, eax
add esp, 0xc
test esi, esi
mov dword [ebp - 0x24], esi
jne 0x568050
push 0x20030001
call fcn.00598a7e
pop ecx
mov eax, dword [ebp - 0xc]
push dword [ebp + 0x1c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x10]
xor edi, edi
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ebx
call fcn.00549406
mov bl, byte [ebp - 1]
cmp dword [0x6b9c70], edi
pop ecx
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x3c], bl
jne 0x568086
call fcn.0056816f
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x18]
push eax
push dword [0x6b9c70]
call fcn.005aa0a3
lea eax, [ebp - 0x90]
push eax
push str.winlogfont
push esi
call sub.CoolType.dll_Ordinal_12
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xe0]
push dword [ebp + 0x1c]
mov dword [eax], ecx
call fcn.00549406
add esp, 0x1c
cmp eax, edi
je 0x5680cf
push 1
push eax
call fcn.004eb5ce
pop ecx
pop ecx
mov edx, dword [ebp + 0x14]
cmp edx, edi
je 0x568106
cmp dword [ebp + 0x18], edi
jle 0x568106
xor ecx, ecx
cmp dword [ebp + 0x18], edi
jle 0x568106
movzx edi, bl
mov al, byte [ecx + edx]
movsx ebx, al
cmp ebx, edi
jne 0x5680f5
mov byte [ecx + edx], 0x20
jmp 0x568100
cmp al, 0x20
jbe 0x568100
mov bl, 0x20
sub bl, al
mov byte [ecx + edx], bl
inc ecx
cmp ecx, dword [ebp + 0x18]
jl 0x5680e5
mov eax, esi
jmp 0x56816a
cmp dword [ebp - 8], ebx
je 0x568118
push dword [ebp - 8]
call fcn.004fe7ee
pop ecx
push 1
lea eax, [ebp - 0x18]
pop esi
push esi
push eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call fcn.00567b83
add esp, 0x18
cmp dword [0x6b9c74], ebx
jne 0x568141
call fcn.00568187
cmp dword [0x6b9c74], ebx
mov dword [ebp - 0x30], esi
jne 0x568151
call fcn.00568187
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x18]
push eax
push dword [0x6b9c74]
call fcn.005aa0a3
add esp, 0xc
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
leave
ret