Function at 0x140007760
Capabilities:
Create thread

Disassembly:
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x88], rbp
mov r14, rdx
mov r15, rcx
test rdx, rdx
je 0x1400079f9
cmp dword [rdx + 0x110], 0x200
jl 0x1400079f9
movabs rax, 0xe11aa1b1e011cfd0
cmp qword [rdx + 0x114], rax
je 0x1400079f9
mov ecx, 0xf0
call fcn.140014564
mov rdi, rax
mov qword [rsp + 0x78], rax
mov rsi, 0xffffffffffffffff
test rax, rax
je 0x140007881
lea rax, vtable.CRepairOOXMLFile.0
mov qword [rdi], rax
mov byte [rdi + 8], 0
xor ebp, ebp
mov qword [rdi + 0x20], rbp
mov qword [rdi + 0x28], 0xf
mov byte [rdi + 0x10], bpl
mov qword [rdi + 0x30], rbp
mov dword [rdi + 0x38], ebp
mov qword [rdi + 0x40], rbp
mov qword [rdi + 0x48], rbp
mov qword [rdi + 0x50], rbp
mov qword [rdi + 0x58], rbp
mov qword [rdi + 0x60], rbp
mov qword [rdi + 0x68], rbp
mov byte [rdi + 0x70], bpl
lea rbx, [rdi + 0x78]
mov qword [rsp + 0x80], rbx
mov qword [rbx], rbp
mov qword [rbx + 8], rbp
call fcn.140006b60
mov qword [rbx], rax
mov qword [rbx + 0x10], rbp
mov qword [rbx + 0x18], rbp
mov qword [rbx + 0x20], rbp
mov byte [rbx + 0x28], 1
mov qword [rbx + 0x30], rbp
mov qword [rbx + 0x38], rbp
mov qword [rbx + 0x40], rbp
mov qword [rbx + 0x48], rbp
mov qword [rbx + 0x50], rbp
mov qword [rdi + 0xd0], rbp
mov dword [rdi + 0xd8], 2
mov qword [rdi + 0xe0], rsi
mov dword [rdi + 0xe8], 0xffffffff
jmp 0x140007885
xor ebp, ebp
mov edi, ebp
test rdi, rdi
je 0x1400079f9
mov r8d, dword [r14 + 0x110]
test r8d, r8d
jne 0x1400078bd
cmp qword [r14], 0xffffffffffffffff
jne 0x1400078bd
lea rdx, [r14 + 8]
inc rsi
cmp byte [rdx + rsi], 0
jne 0x1400078a4
test rsi, rsi
je 0x1400078bd
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
jmp 0x1400078da
mov rax, qword [rdi]
lea rdx, [r14 + 0x114]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
lea rdx, [r14 + 8]
mov rcx, rdi
call qword [rax + 0x18]
mov rax, qword [rdi]
mov rdx, qword [r14]
mov rcx, rdi
call qword [rax + 0x20]
mov rdx, qword [r15 + 0x50]
sub rdx, qword [r15 + 0x48]
sar rdx, 3
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x68]
cmp byte [0x140278073], 0
jne 0x1400079ec
cmp byte [0x140278072], 0
jne 0x1400079ec
mov ecx, 0x10
call fcn.140014564
mov rbx, rax
mov qword [rax], rdi
mov qword [rax + 8], r15
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], ebp
mov r9, rax
lea r8, [0x140007a20]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rsi, rax
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x140007972
mov r8, qword [rdi]
lea edx, [rax + 1]
mov rcx, rdi
call qword [r8]
lea edx, [rsi + 0x10]
mov rcx, rbx
call fcn.140014bac
mov rax, rsi
jmp 0x1400079fb
lea rbx, [r15 + 0xa0]
mov qword [rsp + 0x80], rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
cmp byte [0x140278072], 0
je 0x1400079b7
mov edx, 0xffffffff
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1400079f9
mov rdx, qword [r15 + 0x50]
cmp qword [r15 + 0x58], rdx
je 0x1400079cb
mov qword [rdx], rsi
add qword [r15 + 0x50], 8
jmp 0x1400079de
lea r8, [rsp + 0x78]
lea rcx, [r15 + 0x48]
call fcn.1400087b0
mov rsi, qword [rsp + 0x78]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, rsi
jmp 0x1400079fb
mov rax, qword [rdi]
mov edx, 1
mov rcx, rdi
call qword [rax]
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret