Function at 0x100008be0
Capabilities:
Check if file exists
Create directory
Delete directory
Extract resource via kernel32 functions
Get common file path
Get disk information
Get file attributes
Set file attributes

Disassembly:
mov r11, rsp
sub rsp, 0x158
mov rax, qword [0x100011410]
mov qword [rsp + 0x140], rax
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
lea rdx, [0x100001770]
mov r8d, 0xa
xor ecx, ecx
mov qword [r11 + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor ecx, ecx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, 0x40
lea edx, [rax + 1]
mov esi, eax
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
test rax, rax
mov rdi, rax
jne 0x100008c96
xor ebx, ebx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4b5
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x10
call fcn.100005260
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x100008c7a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x100012170], eax
xor eax, eax
jmp 0x100009107
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
xor eax, eax
mov dword [0x100012170], ecx
jmp 0x100009107
lea rdx, [0x100001770]
mov r8d, 0xa
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor ecx, ecx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
cmp eax, esi
mov ebx, eax
ja 0x100008d08
test eax, eax
je 0x100008d0c
lea rdx, [0x100001770]
mov r8d, 0xa
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor ecx, ecx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
test rax, rax
mov rsi, rax
je 0x100008d0c
mov r8, rbx
mov rdx, rax
mov rcx, rdi
call sub.msvcrt.dll_memcpy
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeResource]
test ebx, ebx
jne 0x100008d46
xor ebx, ebx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4b1
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x10
call fcn.100005260
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [0x100012170], 0x80070714
xor eax, eax
jmp 0x100009107
lea rdx, [0x1000016d4]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcmpA]
mov ecx, dword [0x100012ba0]
mov esi, 1
test eax, eax
cmove ecx, esi
mov dword [0x100012ba0], ecx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
movzx r11d, byte [0x1000131fe]
test r11b, r11b
je 0x100008e6b
xor ebx, ebx
cmp r11b, 0x5c
jne 0x100008d9b
cmp byte [0x1000131ff], r11b
jne 0x100008d9b
mov edi, ebx
jmp 0x100008d9d
mov edi, esi
lea rdx, [0x1000131fe]
lea rcx, [0x100012350]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea rcx, [0x100012350]
call fcn.100005dc0
test eax, eax
jne 0x100008dda
lea rcx, [0x100012350]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x100008dfc
mov dword [0x1000130e0], esi
lea rcx, [0x100012350]
xor r8d, r8d
mov edx, edi
call fcn.100005f40
test eax, eax
je 0x100008e2b
mov dword [0x100012170], ebx
mov eax, esi
jmp 0x100009107
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x100008e14
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x100012170], eax
jmp 0x100008e46
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
mov dword [0x100012170], ecx
jmp 0x100008e46
cmp dword [0x1000130e0], ebx
je 0x100008e46
lea rcx, [0x100012350]
mov dword [0x1000130e0], ebx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4be
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x10
call fcn.100005260
xor eax, eax
jmp 0x100009107
cmp dword [0x1000130e4], 0
jne 0x10000907b
cmp dword [0x100012ba0], 0
jne 0x10000907b
lea rdx, [0x100012350]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x100008ee0
lea rcx, [0x100012350]
mov r8d, 3
mov edx, esi
call fcn.100007760
test eax, eax
jne 0x100008df5
lea rcx, [0x100012350]
call fcn.1000025a0
test eax, eax
jne 0x100008ee0
lea rcx, [0x100012350]
mov r8d, esi
mov edx, esi
call fcn.100007760
test eax, eax
jne 0x100008df5
lea rdx, [0x1000017b8]
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [rsp + 0x30], 0x5a
jg 0x10000904b
nop
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 6
mov ebx, eax
je 0x100008f17
cmp eax, 3
jne 0x100008f27
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x100008f6c
cmp ebx, 2
jne 0x100008f5d
movzx eax, byte [rsp + 0x30]
cmp al, 0x41
je 0x100008f61
cmp al, 0x42
je 0x100008f61
lea rcx, [rsp + 0x30]
call fcn.100009ee0
test eax, eax
je 0x100008f5d
cmp eax, 0x19000
jae 0x100008f6c
mov al, byte [rsp + 0x30]
inc al
mov byte [rsp + 0x30], al
jmp 0x100009043
mov al, byte [rsp + 0x30]
inc al
mov byte [rsp + 0x30], al
jmp 0x100009043
xor r8d, r8d
lea rcx, [rsp + 0x30]
lea edx, [r8 + 3]
call fcn.100005f40
test eax, eax
jne 0x100008fb1
lea rcx, [rsp + 0x30]
call fcn.1000025a0
test eax, eax
jne 0x100008fa2
lea rcx, [rsp + 0x30]
xor r8d, r8d
mov edx, esi
call fcn.100005f40
test eax, eax
jne 0x100008fb1
mov al, byte [rsp + 0x30]
inc al
mov byte [rsp + 0x30], al
jmp 0x100009043
lea rcx, [rsp + 0x30]
call fcn.1000025a0
test eax, eax
je 0x100008fcf
lea rcx, [rsp + 0x30]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea r8, [0x1000017a8]
lea rcx, [rsp + 0x30]
mov edx, 0x104
call fcn.100009a40
lea rcx, [rsp + 0x30]
call fcn.100002560
test eax, eax
jne 0x100009004
mov al, byte [rsp + 0x30]
mov byte [rsp + 0x33], 0
inc al
mov byte [rsp + 0x30], al
jmp 0x100009043
lea rcx, [rsp + 0x30]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rdx, [rsp + 0x30]
lea rcx, [0x100012350]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea rcx, [0x100012350]
xor r8d, r8d
mov edx, esi
call fcn.100007760
test eax, eax
jne 0x100008df5
mov al, byte [rsp + 0x30]
cmp al, 0x5a
jle 0x100008f00
lea rcx, [rsp + 0x30]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edx, 3
lea rcx, [rsp + 0x30]
lea r8d, [rdx + 1]
call fcn.100005f40
test eax, eax
jne 0x100008ee0
jmp 0x100009107
mov rdi, qword [0x100012bc0]
mov edx, 0x7d2
mov r8d, 5
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor ebx, ebx
test rax, rax
je 0x1000090de
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
mov rsi, rax
je 0x1000090de
lea r9, [0x100007d90]
xor r8d, r8d
mov rdx, rax
mov rcx, rdi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.USER32.dll_DialogBoxIndirectParamA]
mov rcx, rsi
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_FreeResource]
cmp rdi, 0xffffffffffffffff
jne 0x1000090ff
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4fb
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 0x10
call fcn.100005260
mov rdi, rbx
test rdi, rdi
setne bl
mov eax, ebx
mov rdi, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x170]
mov rbx, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x140]
call fcn.10000ea20
add rsp, 0x158
ret