Function at 0x1400926e0
Capabilities:
Check if file exists
Create directory
Extract resource via kernel32 functions
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x480]
sub rsp, 0x580
mov rax, qword [0x140144038]
xor rax, rsp
mov qword [rbp + 0x470], rax
mov r12, rcx
xor r13d, r13d
mov qword [0x14014a528], rdx
lea rax, [rsp + 0x30]
mov qword [rbp - 0x48], rax
lea rax, vtable.std::_Func_impl_no_alloc_class__private:_void___cdecl_BaseManager::LoadLanguageResources_struct_HINSTANCE______ptr64____ptr64::_2::_lambda_1___void__unsigned_char____ptr64__unsigned_long_int_.0
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rcx
lea rax, [rsp + 0x30]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x50], rax
mov rax, qword [rcx]
call qword [rax + gethostname]
mov rbx, rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rsi, rax
lea r8, [0x14010d2e0]
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rdi, rax
test rax, rax
je 0x1400927f7
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov r14, rax
test rax, rax
je 0x1400927ed
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, eax
test eax, eax
je 0x1400927ed
mov ecx, esi
call fcn.1400a2ca4
mov r15, rax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, rax
mov r8d, esi
mov rcx, r15
call fcn.1400a4a90
mov rcx, qword [rsp + 0x68]
test rcx, rcx
sete al
test rcx, rcx
je 0x1400927ed
mov dword [rbp - 0x40], esi
mov qword [rbp - 0x48], r15
test al, al
jne 0x140093012
mov rax, qword [rcx]
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x48]
call qword [rax + InitCommonControls]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeResource]
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140092812
mov rax, qword [rcx]
lea rdx, [rsp + 0x30]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x58], r13
mov r8d, 8
lea rdx, str.skin.zip
lea rcx, [rbp - 0x70]
call fcn.1400049c0
nop
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x260]
call fcn.1400a5140
lea rdx, [rbp + 0x260]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], r13
mov qword [rbp - 0x78], r13
lea rax, [rbp + 0x260]
mov rbx, 0xffffffffffffffff
mov r8, rbx
nop
inc r8
cmp word [rax + r8*2], 0
jne 0x140092880
lea rdx, [rbp + 0x260]
lea rcx, [rsp + 0x70]
call fcn.1400049c0
nop
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x50]
call fcn.1400a5140
lea rax, [rbp - 0x70]
cmp qword [rbp - 0x58], 8
cmovae rax, qword [rbp - 0x70]
lea r9, [rsp + 0x70]
cmp qword [rbp - 0x78], 8
cmovae r9, qword [rsp + 0x70]
mov qword [rsp + 0x20], rax
lea r8, [0x14010dd00]
mov edx, 0x104
lea rcx, [rbp + 0x50]
call fcn.140085b90
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], r13
mov qword [rbp + 0x48], r13
lea rax, [rbp + 0x50]
mov r8, rbx
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140092900
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x30]
call fcn.1400049c0
nop
mov rdx, qword [rbp - 0x78]
cmp rdx, 8
jb 0x14009295a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140092955
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140093018
call fcn.1400a2410
mov qword [rbp - 0x80], r13
mov qword [rbp - 0x78], 7
mov word [rsp + 0x70], r13w
mov rdx, qword [rbp - 0x58]
cmp rdx, 8
jb 0x1400929ac
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400929a7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009301e
call fcn.1400a2410
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x58], 7
mov word [rbp - 0x70], r13w
mov rax, qword [r12]
mov rcx, r12
call qword [rax + gethostname]
lea rcx, [rbp + 0x30]
cmp qword [rbp + 0x48], 8
cmovae rcx, qword [rbp + 0x30]
mov rdx, rax
call fcn.14008fa00
mov esi, 4
test al, al
je 0x140092c89
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x48], r13
mov r8d, esi
lea rdx, str.skin
lea rcx, [rsp + 0x30]
call fcn.1400049c0
nop
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x50]
call fcn.1400a5140
lea rdx, [rbp + 0x50]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
mov qword [rbp], r13
mov qword [rbp + 8], r13
lea rax, [rbp + 0x50]
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140092a50
lea rdx, [rbp + 0x50]
lea rcx, [rbp - 0x10]
call fcn.1400049c0
nop
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x260]
call fcn.1400a5140
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rax, qword [rsp + 0x30]
lea r9, [rbp - 0x10]
cmp qword [rbp + 8], 8
cmovae r9, qword [rbp - 0x10]
mov qword [rsp + 0x20], rax
lea r8, [0x14010dd00]
mov edx, 0x104
lea rcx, [rbp + 0x260]
call fcn.140085b90
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x20], r13
lea rax, [rbp + 0x260]
mov r8, rbx
inc r8
cmp word [rax + r8*2], 0
jne 0x140092ad2
lea rdx, [rbp + 0x260]
lea rcx, [rbp - 0x38]
call fcn.1400049c0
nop
mov rdx, qword [rbp + 8]
cmp rdx, 8
jb 0x140092b2e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140092b29
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140093024
call fcn.1400a2410
mov qword [rbp], r13
mov qword [rbp + 8], 7
mov word [rbp - 0x10], r13w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x140092b81
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140092b7c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009302a
call fcn.1400a2410
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], r13w
lea rcx, [rbp - 0x38]
cmp qword [rbp - 0x20], 8
cmovae rcx, qword [rbp - 0x38]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x140092bc3
lea rcx, [rbp - 0x38]
cmp qword [rbp - 0x20], 8
cmovae rcx, qword [rbp - 0x38]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rdx, [rbp - 0x38]
cmp qword [rbp - 0x20], 8
cmovae rdx, qword [rbp - 0x38]
lea rcx, [rbp + 0x30]
cmp qword [rbp + 0x48], 8
cmovae rcx, qword [rbp + 0x30]
call fcn.140084770
lea rdx, [rbp - 0x38]
cmp qword [rbp - 0x20], 8
cmovae rdx, qword [rbp - 0x38]
lea rcx, [0x140144c80]
call fcn.14000cb90
mov rdx, qword [0x140144c80]
cmp word [rdx], 0
je 0x140092c49
nop dword [rax + rax]
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x140092c10
movsxd rax, ebx
movzx r8d, word [rdx + rax*2 - 2]
cmp r8w, 0x5c
je 0x140092c49
cmp r8w, 0x2f
je 0x140092c49
mov dword [rbp - 0x40], 0x5c
lea rdx, [rbp - 0x40]
lea rcx, [0x140144c80]
call fcn.14000c8f0
nop
mov rdx, qword [rbp - 0x20]
cmp rdx, 8
jb 0x140092c89
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140092c84
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140093030
call fcn.1400a2410
call fcn.14000aef0
lea rbx, [0x14014a8e8]
mov rdx, rbx
cmp qword [0x14014a900], 8
cmovae rdx, qword [0x14014a8e8]
mov rcx, rax
call fcn.14001dba0
call fcn.14000aef0
mov r14, rax
cmp qword [0x14014a900], 8
cmovae rbx, qword [0x14014a8e8]
mov rcx, rbx
shr rcx, 0x10
mov rdx, rbx
test cx, cx
je 0x140092d08
lea rdi, [rax + 0x38]
mov rcx, rdi
cmp word [rbx], 0x3c
jne 0x140092cf6
call fcn.140049cf0
test al, al
je 0x140092e47
jmp 0x140092da9
call fcn.140049eb0
test al, al
je 0x140092e47
jmp 0x140092da9
mov rcx, qword [0x14014a538]
test rcx, rcx
cmove rcx, qword [0x14014a528]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbx, rax
test rax, rax
je 0x140092e47
mov rcx, qword [0x14014a538]
test rcx, rcx
cmove rcx, qword [0x14014a528]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov r15, rax
test rax, rax
jne 0x140092d60
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x140092e47
mov rcx, qword [0x14014a538]
test rcx, rcx
cmove rcx, qword [0x14014a528]
lea rdi, [r14 + 0x38]
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, rax
mov r8d, ebx
mov rcx, rdi
call fcn.140049dc0
test al, al
je 0x140092e47
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FreeResource]
lea rcx, [r14 + 0x18]
mov edx, dword [rcx + 8]
call fcn.14000d460
cmp dword [rdi + 0x10], 0
jne 0x140092dc4
mov qword [rbp + 0x258], r13
jmp 0x140092dd3
mov qword [rbp + 0x50], 1
mov qword [rbp + 0x258], rdi
lea rax, [rbp + 0x260]
lea rcx, [rbp + 0x50]
nop
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax + 0x30], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [rax + 0x50], xmm1
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rax + 0x60], xmm0
lea rax, [rax + 0x80]
movups xmm1, xmmword [rcx + 0x70]
movups xmmword [rax - 0x10], xmm1
lea rcx, [rcx + 0x80]
sub rsi, 1
jne 0x140092de0
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
lea rdx, [rbp + 0x260]
mov rcx, r14
call fcn.14001d4c0
lea rax, [0x140127ce0]
mov qword [rsp + 0x30], rax
movzx eax, byte [rbp - 0x40]
mov byte [rsp + 0x38], al
movzx eax, byte [rbp - 0x3f]
mov byte [rsp + 0x39], al
movzx eax, byte [rbp - 0x3e]
mov byte [rsp + 0x3a], al
lea rax, [rsp + 0x30]
mov qword [rsp + 0x68], rax
mov qword [rbp + 0x28], r13
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x30]
call qword [0x140127ce8]
mov rcx, rax
mov qword [rbp + 0x28], rax
mov r8, qword [rsp + 0x68]
test r8, r8
je 0x140092eb9
mov rax, qword [r8]
lea rcx, [rsp + 0x30]
cmp r8, rcx
setne dl
mov rcx, r8
call qword [rax + 0x20]
mov r8, r13
mov qword [rsp + 0x68], r13
mov rcx, qword [rbp + 0x28]
lea rbx, [0x14014aa40]
mov r9, qword [0x14014aa78]
test r9, r9
je 0x140092f1f
cmp r9, rbx
jne 0x140092f10
mov rax, qword [r9]
lea rdx, [rsp + 0x30]
mov rcx, r9
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r8, rax
mov qword [rsp + 0x68], rax
mov rcx, qword [0x14014aa78]
test rcx, rcx
je 0x140092f0a
mov rax, qword [rcx]
cmp rcx, rbx
setne dl
call qword [rax + 0x20]
mov r8, qword [rsp + 0x68]
mov rcx, qword [rbp + 0x28]
jmp 0x140092f18
mov rcx, qword [rbp + 0x28]
jmp 0x140092f1f
mov r8, r9
mov qword [rsp + 0x68], r9
mov qword [0x14014aa78], r13
test rcx, rcx
je 0x140092f8c
lea rax, [rbp - 0x10]
cmp rcx, rax
jne 0x140092f64
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [0x14014aa78], rax
mov rcx, qword [rbp + 0x28]
test rcx, rcx
je 0x140092f5d
mov rax, qword [rcx]
lea rdx, [rbp - 0x10]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov r8, qword [rsp + 0x68]
jmp 0x140092f6b
mov r8, qword [rsp + 0x68]
jmp 0x140092f72
mov qword [0x14014aa78], rcx
mov rcx, r13
mov qword [rbp + 0x28], rcx
test rcx, rcx
je 0x140092f8c
mov rax, qword [rcx]
lea rdx, [rbp - 0x10]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov r8, qword [rsp + 0x68]
test r8, r8
je 0x140092fa6
mov rax, qword [r8]
lea rcx, [rsp + 0x30]
cmp r8, rcx
setne dl
mov rcx, r8
call qword [rax + 0x20]
nop
mov rdx, qword [rbp + 0x48]
cmp rdx, 8
jb 0x140092fe2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140092fdd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009300c
call fcn.1400a2410
mov rcx, qword [rbp + 0x470]
xor rcx, rsp
call fcn.1400a23f0
mov rbx, qword [rsp + 0x5d0]
add rsp, 0x580
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400a92b0
nop
call fcn.1400a1290
nop
call fcn.1400a92b0
nop
call fcn.1400a92b0
nop
call fcn.1400a92b0
nop
call fcn.1400a92b0
nop
call fcn.1400a92b0
int3