Function at 0x140076d10
Capabilities:
Check if file exists
Create thread

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x178], rbx
mov rax, qword [0x14011d8d0]
xor rax, rsp
mov qword [rbp + 0x20], rax
movzx ebx, r9b
mov r12, r8
mov r15d, edx
mov rdi, rcx
xor esi, esi
mov r14d, esi
mov byte [rcx + 0xf], sil
mov dword [rcx + 8], esi
mov qword [rcx + 0x18], rsi
mov qword [rcx + 0x28], rsi
mov qword [rcx + 0x40], rsi
mov qword [rcx + 0x48], rsi
mov qword [rcx + 0x50], rsi
mov qword [rcx + 0x20], rsi
mov word [rcx + 0xd], si
mov byte [rcx + 0x70], sil
add rcx, 0xa8
call fcn.14006d750
mov byte [rdi + 0x71], 1
mov byte [rdi + 0xd0], sil
mov byte [rdi + 0xb], bl
cmp r15d, 2
jne 0x140077026
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x44]
mov rcx, rdi
call fcn.1400669d0
test al, al
jne 0x140076e06
mov r14d, 0x80004005
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
or r12d, 0xffffffff
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x140077498
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x140077498
lea rcx, [rbp - 0x70]
call fcn.14004a620
nop
lea r8, [rsp + 0x38]
mov edx, dword [rsp + 0x44]
lea rcx, [rbp - 0x70]
call fcn.1400480e0
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], rsi
lea r8, [rsp + 0x48]
mov rdx, qword [r12]
lea rcx, [rbp - 0x70]
call fcn.14004bf40
mov r11, qword [r12]
mov rax, qword [r12 + 8]
sub rax, r11
sar rax, 3
or r12d, 0xffffffff
mov r13, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x48]
test rax, rax
je 0x140076fb3
mov rcx, r13
sub rcx, rbx
movabs rax, 0x2e8ba2e8ba2e8ba3
imul rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140076fb3
mov rdx, qword [r11]
mov rcx, rdi
call fcn.1400731e0
test al, al
je 0x140076fa7
mov dword [rdi + 0x18], esi
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x48]
mov rdx, qword [rax + 0x48]
lea rcx, [rdx - 0x18]
lea r13, [rbx - 0x18]
cmp rcx, r13
je 0x140076f44
cmp dword [r13 + 0x10], 0
jl 0x140076f31
mov rax, qword [r13]
cmp qword [rcx], rax
jne 0x140076f31
call fcn.140001b90
mov rbx, rax
mov ecx, r12d
lock xadd dword [r13 + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x140076f26
mov rcx, qword [r13]
mov r8, qword [rcx]
mov rdx, r13
call qword [r8 + 8]
add rbx, 0x18
mov qword [rsp + 0x30], rbx
jmp 0x140076f44
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140001e80
mov rbx, qword [rsp + 0x30]
lea r8, [rsp + 0x70]
mov rdx, rbx
mov rcx, rdi
call fcn.140068ef0
mov rbx, qword [rsp + 0x70]
test al, al
je 0x140076f6b
mov rdx, rbx
mov rcx, rdi
call fcn.140069780
mov r14d, esi
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140076f87
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140076fa7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r13, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x48]
jmp 0x140076fb9
mov r14d, 0x80004005
test rbx, rbx
je 0x140076fe4
cmp rbx, r13
je 0x140076fdc
mov rcx, rbx
call fcn.14002be60
add rbx, 0x160
cmp rbx, r13
jne 0x140076fc3
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void____ptr64_
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], rsi
lea rcx, [rbp - 0x70]
call fcn.14004bd80
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x140077451
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x140077451
mov dword [rdi + 0x10], r15d
mov rax, qword [r12 + 8]
sub rax, qword [r12]
test rax, 0xfffffffffffffff8
jne 0x14007704c
lea rcx, str.CPatchUpdateController::Initial:Get_strPatchSPID_error
call fcn.1400191f0
jmp 0x14007735d
cmp r15d, 9
je 0x14007706b
cmp r15d, 0xa
je 0x14007706b
cmp r15d, 0xb
je 0x14007706b
mov rdx, r12
mov rcx, rdi
call fcn.140073600
jmp 0x140077076
mov rdx, r12
mov rcx, rdi
call fcn.14006da70
test al, al
je 0x14007735d
mov rdx, rsi
mov rax, qword [rdi + 0xb0]
sub rax, qword [rdi + 0xa8]
sar rax, 6
movsxd r8, eax
test eax, eax
jle 0x14007715f
mov rax, qword [rdi + 0xa8]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400770c2
add qword [rdi + 0x48], rcx
inc rdx
add rax, 0x40
cmp rdx, r8
jl 0x1400770a5
jmp 0x14007715f
mov eax, dword [rdi + 0x10]
cmp eax, 6
je 0x1400770de
cmp eax, 8
je 0x1400770de
cmp eax, 4
je 0x1400770de
cmp eax, 9
je 0x1400770de
cmp eax, 0xb
jne 0x14007714d
mov dword [rdi + 0x20], 0xa0011000
mov dword [rdi + 0x24], 2
mov ebx, esi
mov rax, qword [rdi + 0xb0]
sub rax, qword [rdi + 0xa8]
sar rax, 6
movsxd r14, eax
test eax, eax
jle 0x14007714d
mov r12, rsi
nop word [rax + rax]
mov rax, qword [rdi + 0xa8]
mov rcx, qword [r12 + rax + 0x28]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edx, ebx
mov rcx, rdi
test eax, eax
je 0x140077133
xor r9d, r9d
xor r8d, r8d
jmp 0x14007713d
mov r9d, dword [rdi + 0x20]
mov r8d, 1
call fcn.140072590
inc ebx
add r12, 0x40
dec r14
jne 0x140077110
mov r14d, 0x80004005
lea rcx, str.CPatchUpdateController::Initial:Patch_Size_error
call fcn.1400191f0
xor bl, bl
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x14007717c
call fcn.1400221a0
cmp eax, 1
jne 0x14007717c
movzx ebx, al
jmp 0x140077248
mov qword [rsp + 0x68], rsi
lea rdx, [rsp + 0x68]
mov rcx, rdi
call fcn.140065360
mov r11, qword [rsp + 0x68]
cmp qword [rdi + 0x48], r11
jbe 0x140077248
lea rcx, str.CPatchUpdateController::Update:hardDisk_space_too_small
call fcn.1400191f0
mov r11d, dword [rdi + 0x10]
cmp r11d, 6
je 0x1400771cb
cmp r11d, 8
je 0x1400771cb
cmp r11d, 4
je 0x1400771cb
cmp r11d, 9
je 0x1400771cb
cmp r11d, 0xb
jne 0x14007723d
mov dword [rdi + 0x20], 0xa0011000
mov dword [rdi + 0x24], 3
mov rax, qword [rdi + 0xb0]
sub rax, qword [rdi + 0xa8]
sar rax, 6
movsxd r12, eax
test eax, eax
jle 0x14007723d
mov rbx, rsi
nop word [rax + rax]
mov rax, qword [rdi + 0xa8]
mov rcx, qword [rbx + rax + 0x28]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edx, esi
mov rcx, rdi
test eax, eax
je 0x140077223
xor r9d, r9d
xor r8d, r8d
jmp 0x14007722d
mov r9d, dword [rdi + 0x20]
mov r8d, 1
call fcn.140072590
inc esi
add rbx, 0x40
dec r12
jne 0x140077200
mov r14d, 0x80040501
jmp 0x140077498
mov eax, dword [rdi + 0x10]
cmp eax, 8
je 0x14007726d
cmp eax, 7
je 0x14007726d
cmp eax, 4
je 0x14007726d
cmp eax, 1
je 0x14007726d
cmp eax, 0xa
je 0x14007726d
cmp eax, 0xb
jne 0x140077368
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x118]
test al, al
jne 0x140077368
mov eax, dword [rdi + 0x10]
cmp eax, 9
je 0x140077368
cmp eax, 0xa
je 0x140077368
cmp eax, 0xb
je 0x140077368
mov byte [rbp + 0x10], sil
xor eax, eax
mov qword [rbp + 0x11], rax
mov word [rbp + 0x19], ax
mov byte [rbp + 0x1b], al
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_GetSystemPowerStatus]
test eax, eax
je 0x140077368
cmp byte [rbp + 0x10], sil
jne 0x140077368
lea rcx, str.CPatchUpdateController::PowerMode_is_DC
call fcn.1400191f0
mov r11d, dword [rdi + 0x10]
cmp r11d, 8
je 0x1400772fb
cmp r11d, 7
je 0x1400772fb
cmp r11d, 4
je 0x1400772fb
cmp r11d, 0xa
je 0x1400772fb
cmp r11d, 0xb
jne 0x14007735d
mov dword [rdi + 0x20], 0xa0010006
mov rax, qword [rdi + 0xb0]
sub rax, qword [rdi + 0xa8]
sar rax, 6
movsxd r12, eax
test eax, eax
jle 0x14007735d
mov rbx, rsi
nop
mov rax, qword [rdi + 0xa8]
mov rcx, qword [rbx + rax + 0x28]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edx, esi
mov rcx, rdi
test eax, eax
je 0x140077343
xor r9d, r9d
xor r8d, r8d
jmp 0x14007734d
mov r9d, dword [rdi + 0x20]
mov r8d, 1
call fcn.140072590
inc esi
add rbx, 0x40
dec r12
jne 0x140077320
mov r14d, 0x80004005
jmp 0x140077498
test bl, bl
jne 0x140077429
lea rcx, [rsp + 0x78]
call fcn.1400386c0
lea rcx, [rsp + 0x78]
call fcn.1400415c0
test al, al
jne 0x140077429
mov eax, dword [rdi + 0x10]
cmp eax, 1
je 0x140077429
cmp eax, 3
je 0x140077429
cmp eax, 6
je 0x1400773ba
cmp eax, 8
je 0x1400773ba
cmp eax, 4
je 0x1400773ba
cmp eax, 9
je 0x1400773ba
cmp eax, 0xb
jne 0x140077421
mov dword [rdi + 0x20], 0xa0011000
mov dword [rdi + 0x24], 4
mov rax, qword [rdi + 0xb0]
sub rax, qword [rdi + 0xa8]
sar rax, 6
movsxd r12, eax
test eax, eax
jle 0x140077421
mov rbx, rsi
mov rax, qword [rdi + 0xa8]
mov rcx, qword [rbx + rax + 0x28]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edx, esi
mov rcx, rdi
test eax, eax
je 0x140077407
xor r9d, r9d
xor r8d, r8d
jmp 0x140077411
mov r9d, dword [rdi + 0x20]
mov r8d, 1
call fcn.140072590
inc esi
add rbx, 0x40
dec r12
jne 0x1400773e4
mov r14d, 0x80040500
jmp 0x140077498
mov eax, dword [rdi + 0x10]
cmp eax, 1
je 0x140077436
cmp eax, 3
jne 0x140077451
call fcn.1400a6550
test al, al
jne 0x140077492
call fcn.1400a66d0
test al, al
jne 0x140077492
call fcn.1400a6610
test al, al
jne 0x140077492
test r14d, r14d
jne 0x140077498
cmp r15d, 2
je 0x140077498
mov dword [rsp + 0x40], esi
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
mov r9, rdi
lea r8, [0x1400750b0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x140077498
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140077498
mov r14d, 0x80040502
mov eax, r14d
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.1400cafa0
mov rbx, qword [rsp + 0x178]
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret