Function at 0x10056882
Capabilities:
Create directory
Get common file path

Disassembly:
push 0x240
mov eax, 0x1015a8cd
call fcn.1012b6ae
mov edi, dword [ebp + 8]
test edi, edi
jne 0x1005689f
xor al, al
jmp 0x10056cd8
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.1012db70
add esp, 0xc
lea eax, [ebp - 0x218]
push ebx
push 0x1a
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
mov esi, 0x104
lea eax, [ebp - 0x218]
je 0x100568ea
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x100568f6
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x100568f6
push 0x1018fa24
push esi
push eax
call fcn.10019f19
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x234]
call int.100088c7
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x218]
push edi
push esi
push eax
call fcn.10019f19
mov ebx, dword [sym.imp.SHLWAPI.dll_PathAppendW]
xor eax, eax
mov word [edi], ax
lea eax, [ebp - 0x218]
push 0x1018cfec
push eax
call ebx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x23c]
call int.100088c7
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x23c]
mov eax, dword [ebp - 0x23c]
mov eax, dword [eax - 0xc]
dec eax
push eax
call fcn.10008a0b
push 0x5c
pop esi
cmp ax, si
jne 0x100569a5
mov eax, dword [ebp - 0x23c]
lea ecx, [ebp - 0x23c]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea eax, [ebp - 0x238]
push eax
call fcn.10014b9c
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x23c]
push eax
call fcn.10010aef
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x238]
lea ecx, [ecx - 0x10]
call fcn.100078bc
mov eax, dword [ebp - 0x234]
lea ecx, [ebp - 0x234]
mov eax, dword [eax - 0xc]
dec eax
push eax
call fcn.10008a0b
cmp ax, si
jne 0x100569ff
mov eax, dword [ebp - 0x234]
lea ecx, [ebp - 0x234]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea eax, [ebp - 0x238]
push eax
call fcn.10014b9c
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x234]
push eax
call fcn.10010aef
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x238]
lea ecx, [ecx - 0x10]
call fcn.100078bc
push 0x100093c3
push 7
push 0x1018fa2c
push 5
lea eax, [ebp - 0x230]
push 0x1018f9c4
push eax
call fcn.10110a2f
add esp, 0x18
mov byte [ebp - 4], 6
cmp dword [eax + 0x14], 8
jb 0x10056a2d
mov eax, dword [eax]
push 0x11
push 8
push eax
lea eax, [ebp - 0x244]
push eax
call fcn.100085ce
add esp, 0x10
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x230]
call fcn.10008c86
push 0x101811bc
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.1004978c
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x244]
push ecx
push eax
lea eax, [ebp - 0x238]
push eax
call fcn.10017a06
mov byte [ebp - 4], 0xa
push dword [eax]
push dword [ebp - 0x23c]
call fcn.10056689
add esp, 0x20
mov esi, eax
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x238]
add ecx, 0xfffffff0
call fcn.100078bc
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x24c]
lea ecx, [ecx - 0x10]
call fcn.100078bc
test esi, esi
jne 0x10056ac5
xor bl, bl
jmp 0x10056ca0
push dword [ebp - 0x234]
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.10019f19
push dword [ebp - 0x244]
lea eax, [ebp - 0x218]
push eax
call ebx
mov esi, 0x100093c3
lea eax, [ebp - 0x230]
push esi
push 7
push 0x1018fa2c
push 0x11
push 0x1018f9d4
push eax
call fcn.10110a2f
add esp, 0x18
mov byte [ebp - 4], 0x10
cmp dword [eax + 0x14], 8
jb 0x10056b1a
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x218]
push eax
call ebx
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x230]
call fcn.10008c86
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x240]
call int.100088c7
mov byte [ebp - 4], 0x11
push dword [ebp - 0x240]
call fcn.10010313
test eax, eax
jne 0x10056b5f
xor bl, bl
jmp 0x10056c8e
call fcn.10007945
push eax
lea ecx, [ebp - 0x238]
call fcn.10008bfd
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x230]
push esi
push 7
push 0x1018fa2c
push 5
push 0x1018f9fc
push eax
call fcn.10110a2f
add esp, 0x18
mov byte [ebp - 4], 0x18
cmp dword [eax + 0x14], 8
jb 0x10056b9e
mov eax, dword [eax]
push 0x11
push 8
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.100085ce
add esp, 0x10
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x230]
call fcn.10008c86
push esi
push 7
push 0x1018fa2c
push 9
lea eax, [ebp - 0x230]
push 0x1018fa0c
push eax
call fcn.10110a2f
add esp, 0x18
mov byte [ebp - 4], 0x1b
cmp dword [eax + 0x14], 8
jb 0x10056beb
mov eax, dword [eax]
push dword [ebp - 0x248]
push eax
lea eax, [ebp - 0x238]
push eax
call fcn.10014838
add esp, 0xc
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x230]
call fcn.10008c86
mov esi, dword [ebp - 0x238]
lea eax, [ebp - 0x218]
push esi
push eax
call ebx
mov ebx, dword [ebp - 0x240]
push 0x2a
call fcn.10010082
pop ecx
push 0
test eax, eax
je 0x10056c40
lea ecx, [ebp - 0x218]
push ecx
push ebx
call eax
jmp 0x10056c4e
lea eax, [ebp - 0x218]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x10056c5c
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor bl, bl
jmp 0x10056c70
lea eax, [ebp - 0x218]
push eax
push 0x104
push edi
call fcn.10019f19
mov bl, 1
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x248]
lea ecx, [ecx - 0x10]
call fcn.100078bc
mov byte [ebp - 4], 0x11
lea ecx, [esi - 0x10]
call fcn.100078bc
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x240]
lea ecx, [ecx - 0x10]
call fcn.100078bc
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x244]
lea ecx, [ecx - 0x10]
call fcn.100078bc
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x23c]
lea ecx, [ecx - 0x10]
call fcn.100078bc
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x234]
add ecx, 0xfffffff0
call fcn.100078bc
mov al, bl
call fcn.1012b658
ret