Function at 0x140015c80
Capabilities:
Create directory
Delete file
Extract resource via kernel32 functions
Get file size
Read file on windows
Set file attributes
Write file on windows

Disassembly:
push rbx
push rsi
push r14
push r15
sub rsp, 0x278
mov rax, qword [0x14006b680]
xor rax, rsp
mov qword [rsp + 0x260], rax
lea r8, str.SCID
mov r15, rcx
lea rdx, str.SOURCE_CONTROL_ID
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbx, rax
test rax, rax
je 0x14001604d
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov r14d, eax
test eax, eax
je 0x14001604d
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x14001604d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rsi, rax
test rax, rax
je 0x14001604d
lea rbx, [0x14006ca90]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x140015d3b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x14001604d
mov qword ss:[rsp + 0x2a8], rbp
mov edx, 0x2002
mov qword [rsp + 0x2b0], rdi
mov rcx, rbx
mov qword [rsp + 0x270], r13
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor edx, edx
lea rcx, [rsp + 0x50]
mov r8d, 0x208
call fcn.140047d20
lea r9, str._sSCID.bin
mov qword [rsp + 0x20], rbx
mov edx, 0x104
lea rcx, [rsp + 0x50]
mov r8, 0xffffffffffffffff
call fcn.1400022c0
xor ebx, ebx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x30], rbx
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
mov edx, 0xc0000000
mov r8d, 3
mov dword [rsp + 0x20], 4
xor r13b, r13b
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbp, rax
cmp rax, 0xffffffffffffffff
je 0x140015fb1
nop word [rax + rax]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x140016005
lea rdx, ds:[rsp + 0x48]
mov qword [rsp + 0x48], rbx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x140015e4b
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov rdi, qword [rsp + 0x2b0]
mov rbp, qword [rsp + 0x2a8]
mov r13, qword [rsp + 0x270]
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.14001e390
add rsp, 0x278
pop r15
pop r14
pop rsi
pop rbx
ret
mov qword ss:[rsp + 0x2b8], r12
mov r12d, dword [rsp + 0x48]
mov ecx, r12d
call fcn.14001e3b0
mov rdi, rax
test rax, rax
je 0x140015e7c
mov r8d, r12d
xor edx, edx
mov rcx, rax
call fcn.140047d20
jmp 0x140015e7f
mov rdi, rbx
mov r8d, dword [rsp + 0x48]
lea r9, [rsp + 0x40]
mov rdx, rdi
mov dword [rsp + 0x40], ebx
mov rcx, rbp
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r12, qword [rsp + 0x2b8]
test eax, eax
je 0x140015fec
mov eax, dword [rsp + 0x40]
cmp eax, dword [rsp + 0x48]
jne 0x140015fec
nop dword [rax]
cmp eax, r14d
ja 0x140015f1b
mov r8d, eax
cmp rdi, rsi
je 0x140015f69
test eax, eax
je 0x140015f69
nop dword [rax]
test rdi, rdi
je 0x140015f69
lea r9, [rax + rdi]
sub rsi, rdi
movzx eax, byte [rsi + r9 - 1]
lea r9, [r9 - 1]
movzx edx, byte [r9]
sub edx, eax
mov eax, edx
not eax
sar eax, 8
lea ecx, [rdx - 1]
sar ecx, 8
and ecx, eax
and ebx, ecx
or ebx, edx
sub r8, 1
jne 0x140015ef0
jmp 0x140015f69
mov r9, r14
cmp rdi, rsi
je 0x140015f69
test rdi, rdi
je 0x140015f69
lea r8, [r14 + rdi]
sub rsi, rdi
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rsi + r8 - 1]
lea r8, [r8 - 1]
movzx edx, byte [r8]
sub edx, eax
mov eax, edx
not eax
sar eax, 8
lea ecx, [rdx - 1]
sar ecx, 8
and ecx, eax
and ebx, ecx
or ebx, edx
sub r9, 1
jne 0x140015f40
lea eax, [rbx - 1]
sar ebx, 8
sar eax, 8
add eax, ebx
add eax, 1
jne 0x140015f87
lea rcx, str.No_Steam_update_found__n_n
call fcn.14001d860
jmp 0x140015fa0
mov edx, 7
lea r8, str.Your_Steam_version_has_changed__SteamLite_might_not_work_correctly_until_its_been_updated__n_n
mov ecx, 0xc
call fcn.1400172a0
mov r13b, 1
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rdi
call fcn.14001e3b8
mov edx, 0x2002
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp r13b, 1
jne 0x140015fe5
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp eax, 1
jne 0x140015fe5
mov rcx, r15
call fcn.140015c80
mov al, 1
jmp 0x140015e15
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rdi
call fcn.14001e3b8
nop dword [rax]
jmp 0x140015e13
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rbp
test eax, eax
jne 0x14001602f
lea r9, [rsp + 0x40]
mov dword [rsp + 0x40], ebx
mov r8d, r14d
mov qword [rsp + 0x20], rbx
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, 0x2002
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov al, 1
jmp 0x140015e15
xor al, al
jmp 0x140015e2d