Function at 0x18002b3a0
Capabilities:
Create directory
Extract resource via kernel32 functions
Get common file path
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x150
mov rax, qword [0x1800964f0]
xor rax, rsp
mov qword [rsp + 0x140], rax
lea rcx, [rsp + 0x31]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x30], 0
call fcn.180055310
lea rdx, [rsp + 0x30]
xor r9d, r9d
mov qword [rsp + 0x20], rdx
xor r8d, r8d
lea edx, [r9 + 0x1a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
jns 0x18002b408
lea rdx, [rsp + 0x30]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
jmp 0x18002b44f
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x30]
repne scasb al, byte [rdi]
mov eax, dword [str._tmep_]
lea rcx, [rsp + 0x30]
mov dword [rdi - 1], eax
movzx eax, word [0x1800830e8]
mov word [rdi + 3], ax
movzx eax, byte [0x1800830ea]
mov byte [rdi + 5], al
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryA]
test eax, eax
jne 0x18002b44f
lea rcx, [rsp + 0x30]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov rcx, qword [0x1800a2978]
mov qword [rsp + 0x160], rbp
lea r8, [0x180082bdc]
mov edx, 0x78
mov qword [rsp + 0x168], rsi
mov qword [rsp + 0x170], r12
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor ebx, ebx
mov rdi, rax
test rax, rax
je 0x18002b548
mov rcx, qword [0x1800a2978]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x1800a2978]
mov rdx, rdi
mov ebp, eax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, rbx
lea r8, [0x1800a4cc0]
mov r12, rax
nop dword [rax]
movzx ecx, byte [rsp + rdx + 0x30]
inc rdx
mov byte [rdx + r8 - 1], cl
test cl, cl
jne 0x18002b4d0
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
mov rax, qword [str.wxpp32.tmp]
lea rdx, [0x180080678]
mov qword [rdi - 1], rax
movzx eax, word [0x1800822d0]
mov rcx, r8
mov word [rdi + 7], ax
movzx eax, byte [0x1800822d2]
mov byte [rdi + 9], al
call fcn.180050a28
mov rdi, rax
test rax, rax
je 0x18002b53f
mov rdx, rbp
mov r9, rax
mov r8d, 1
mov rcx, r12
call fcn.180050ccc
mov rcx, rdi
call fcn.1800511e8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov rcx, qword [0x1800a2978]
lea r8, [0x180082bdc]
mov edx, 0x79
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov rdi, rax
test rax, rax
je 0x18002b628
mov rcx, qword [0x1800a2978]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x1800a2978]
mov rdx, rdi
mov ebp, eax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, rbx
lea r8, [0x1800a4dd0]
mov r12, rax
nop dword [rax + rax]
movzx ecx, byte [rsp + rdx + 0x30]
inc rdx
mov byte [rdx + r8 - 1], cl
test cl, cl
jne 0x18002b5b0
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
mov rax, qword [str.wxpp64.tmp]
lea rdx, [0x180080678]
mov qword [rdi - 1], rax
movzx eax, word [0x1800822e0]
mov rcx, r8
mov word [rdi + 7], ax
movzx eax, byte [0x1800822e2]
mov byte [rdi + 9], al
call fcn.180050a28
mov rdi, rax
test rax, rax
je 0x18002b61f
mov rdx, rbp
mov r9, rax
mov r8d, 1
mov rcx, r12
call fcn.180050ccc
mov rcx, rdi
call fcn.1800511e8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov rcx, qword [0x1800a2978]
lea r8, [0x180082bdc]
mov edx, 0x76
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov rdi, rax
test rax, rax
je 0x18002b708
mov rcx, qword [0x1800a2978]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x1800a2978]
mov rdx, rdi
mov ebp, eax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, rbx
lea r8, [0x1800a4ee0]
mov r12, rax
nop dword [rax + rax]
movzx ecx, byte [rsp + rdx + 0x30]
inc rdx
mov byte [rdx + r8 - 1], cl
test cl, cl
jne 0x18002b690
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
mov rax, qword [str.winh32.dll]
lea rdx, [0x180080678]
mov qword [rdi - 1], rax
movzx eax, word [0x1800822f0]
mov rcx, r8
mov word [rdi + 7], ax
movzx eax, byte [0x1800822f2]
mov byte [rdi + 9], al
call fcn.180050a28
mov rdi, rax
test rax, rax
je 0x18002b6ff
mov rdx, rbp
mov r9, rax
mov r8d, 1
mov rcx, r12
call fcn.180050ccc
mov rcx, rdi
call fcn.1800511e8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov rcx, qword [0x1800a2978]
lea r8, [0x180082bdc]
mov edx, 0x77
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov rdi, rax
test rax, rax
je 0x18002b7e8
mov rcx, qword [0x1800a2978]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x1800a2978]
mov rdx, rdi
mov ebp, eax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
lea r8, [0x1800a4ff0]
mov r12, rax
nop word [rax + rax]
movzx edx, byte [rsp + rbx + 0x30]
inc rbx
mov byte [rbx + r8 - 1], dl
test dl, dl
jne 0x18002b770
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
mov rax, qword [str.winh64.dll]
lea rdx, [0x180080678]
mov qword [rdi - 1], rax
movzx eax, word [0x180082300]
mov rcx, r8
mov word [rdi + 7], ax
movzx eax, byte [0x180082302]
mov byte [rdi + 9], al
call fcn.180050a28
mov rdi, rax
test rax, rax
je 0x18002b7df
mov rdx, rbp
mov r9, rax
mov r8d, 1
mov rcx, r12
call fcn.180050ccc
mov rcx, rdi
call fcn.1800511e8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov r12, qword [rsp + 0x170]
mov rsi, qword [rsp + 0x168]
mov rbp, qword [rsp + 0x160]
mov eax, 1
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.180050540
mov rbx, qword [rsp + 0x178]
add rsp, 0x150
pop rdi
ret