Function at 0x1400a0590
Capabilities:
Create thread
Terminate process

Disassembly:
mov dword [rsp + 0x18], r8d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x20]
sub rsp, 0x120
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x160], rbx
mov r14, rdx
mov r12, rcx
lea rax, vtable.WTL::CMessageLoop.0
mov qword [rbp - 0x80], rax
xor ebx, ebx
mov qword [rbp - 0x78], rbx
mov qword [rbp - 0x70], rbx
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x60], rbx
mov rsi, qword [0x14021f828]
add rsi, 0x18
mov qword [rbp + 8], rsi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r15d, eax
mov rdi, qword [0x14021cee8]
mov ecx, dword [rdi + 0x10]
inc ecx
movsxd rdx, ecx
lea r8d, [rbx + 4]
mov rcx, qword [rdi]
call fcn.1400eb540
test rax, rax
je 0x1400a066b
mov qword [rdi], rax
mov eax, dword [rdi + 0x10]
inc eax
movsxd rdx, eax
lea r8d, [rbx + 8]
mov rcx, qword [rdi + 8]
call fcn.1400eb540
test rax, rax
je 0x1400a066b
mov qword [rdi + 8], rax
movsxd rdx, dword [rdi + 0x10]
mov rax, qword [rdi]
lea rcx, [rax + rdx*4]
test rcx, rcx
je 0x1400a0654
mov dword [rcx], r15d
mov rax, qword [rdi + 8]
lea rdx, [rax + rdx*8]
test rdx, rdx
je 0x1400a0668
lea rax, [rbp - 0x80]
mov qword [rdx], rax
inc dword [rdi + 0x10]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r13, rbx
lea rdx, str.1025
mov rcx, qword [r14 + 0x18]
call fcn.1400eb6a0
test eax, eax
je 0x1400a069f
lea rdx, str.1037
mov rcx, qword [r14 + 0x18]
call fcn.1400eb6a0
test eax, eax
jne 0x1400a06b0
mov edx, 1
lea rcx, [0x14021cdd0]
call fcn.1400cf260
mov ecx, 0x2618
call fcn.1400dd9f8
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1400a06d1
mov rcx, rax
call fcn.140093750
mov rdi, rax
jmp 0x1400a06d4
mov rdi, rbx
mov rcx, qword [r14 + 0x40]
sub rcx, 0x18
call fcn.14004ecac
add rax, 0x18
mov qword [rsp + 0x48], rax
or rsi, 0xffffffffffffffff
cmp dword [rax - 0x10], 0
je 0x1400a0770
lea rcx, [rax - 0x18]
call fcn.14004ecac
add rax, 0x18
mov qword [rsp + 0x70], rax
lea rdx, [rsp + 0x70]
lea rcx, [0x14021cdd0]
call fcn.1400ce0e0
test eax, eax
je 0x1400a0770
lea rdx, str.HelpViewer.htm
mov rax, rsi
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400a0725
mov r8d, eax
lea rcx, [rsp + 0x48]
call fcn.14004e8f8
mov ecx, 0x230
call fcn.1400dd9f8
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1400a0762
lea rdx, [rsp + 0x48]
mov rcx, rax
call fcn.140070210
mov r13, rax
jmp 0x1400a0765
mov r13, rbx
mov rdx, r13
mov rcx, rdi
call fcn.1400daf40
call fcn.140070690
mov rcx, rax
mov r9d, 2
lea r8, str.HelpViewer_Main
xor edx, edx
call fcn.140072d40
call fcn.140070690
mov rcx, rax
mov r9d, 2
lea r8, [0x14018c060]
xor edx, edx
call fcn.140072d40
lea rax, [rsp + 0x78]
mov qword [rsp + 0x50], rax
mov rcx, qword [r12]
sub rcx, 0x18
call fcn.14004ecac
add rax, 0x18
mov qword [rsp + 0x78], rax
call fcn.140070690
mov rcx, rax
mov dword [rsp + 0x20], 2
lea r9, [rsp + 0x78]
lea r8, str.Recieved_Cmd_Args_
xor edx, edx
call fcn.140072ca0
cmp dword [r14 + 0x48], 0
je 0x1400a0817
call fcn.140070690
mov rcx, rax
mov r9d, 2
lea r8, str.There_is_no_Help_Viewer_active_instance_to_exit
xor edx, edx
call fcn.140072d40
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]
mov rax, qword [r14]
cmp dword [rax - 0x10], 0
je 0x1400a0918
call fcn.14004b618
mov rcx, rax
test rax, rax
jne 0x1400a083c
mov ecx, 0x80004005
call fcn.14004a980
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
mov rcx, qword [r14 + 0x10]
sub rcx, 0x18
call fcn.14004ecac
mov r12, rax
lea rcx, [rax + 0x18]
mov qword [rbp - 0x18], rcx
mov r9, qword [r14]
lea rcx, [r9 - 0x18]
mov r15, qword [rsp + 0x40]
add r15, 0xffffffffffffffe8
cmp rcx, r15
je 0x1400a08cc
cmp dword [r15 + 0x10], 0
jl 0x1400a08bb
mov rax, qword [r15]
cmp qword [rcx], rax
jne 0x1400a08bb
call fcn.14004ecac
mov qword [rsp + 0x50], rax
mov ecx, esi
lock xadd dword [r15 + 0x10], ecx
sub ecx, 1
jg 0x1400a08b0
mov rcx, qword [r15]
mov r8, qword [rcx]
mov rdx, r15
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rax, qword [rsp + 0x50]
add rax, 0x18
mov qword [rsp + 0x40], rax
jmp 0x1400a08cc
mov r8d, dword [r9 - 0x10]
mov rdx, r9
lea rcx, [rsp + 0x40]
call fcn.14004edac
lea rdx, [rsp + 0x40]
lea rcx, [0x14021cdd0]
call fcn.1400cf250
nop
mov eax, esi
lock xadd dword [r12 + 0x10], eax
sub eax, 1
jg 0x1400a08fa
mov rcx, qword [r12]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400a0918
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r8, r14
mov rdx, rdi
lea rcx, [rbp - 8]
call fcn.1400a29a0
mov rcx, qword [rax]
mov qword [rsp + 0x30], rcx
mov r12, qword [rax + 8]
mov qword [rsp + 0x38], r12
mov qword [rax], rbx
mov qword [rax + 8], rbx
mov r15, qword [rbp]
test r15, r15
je 0x1400a0978
mov eax, esi
lock xadd dword [r15 + 8], eax
cmp eax, 1
jne 0x1400a0973
mov rax, qword [r15]
mov rcx, r15
call qword [rax]
mov eax, esi
lock xadd dword [r15 + 0xc], eax
cmp eax, 1
jne 0x1400a0973
mov rax, qword [r15]
mov rcx, r15
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r12, qword [rsp + 0x38]
cmp qword [rsp + 0x30], 0
setne al
test al, al
jne 0x1400a09a1
test rdi, rdi
je 0x1400a0c7f
mov rax, qword [rdi]
mov edx, 1
mov rcx, rdi
call qword [rax + 0x10]
jmp 0x1400a0c7f
test rdi, rdi
je 0x1400a0c7f
mov qword [rbp - 0x10], rbx
lea rcx, [rdi + 8]
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], ebx
xor r9d, r9d
mov r8, rbx
xor edx, edx
call fcn.140095a50
test rax, rax
je 0x1400a0c7f
lea rcx, [rsp + 0x58]
call fcn.1400b23c0
nop
mov edx, 0xfffffff0
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov r8d, eax
or r8d, 0x6000000
cmp eax, r8d
je 0x1400a0a09
mov edx, 0xfffffff0
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_SetWindowLongW]
cmp dword [r14 + 0x4c], 0
jne 0x1400a0a43
mov edx, dword [rbp + 0x70]
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_SetFocus]
lea rdx, [r14 + 0x10]
lea rcx, [0x14021cdd0]
call fcn.1400cf490
test eax, eax
je 0x1400a0a43
mov rcx, rdi
call fcn.1400d8170
mov rax, qword [r14 + 0x28]
mov rcx, rdi
cmp dword [rax - 0x10], 0
je 0x1400a0a5a
mov rdx, r14
call fcn.1400d6950
jmp 0x1400a0a7e
mov rax, qword [r14 + 0x30]
cmp dword [rax - 0x10], 0
je 0x1400a0a6e
mov rdx, r14
call fcn.1400d99e0
jmp 0x1400a0a7e
lea rdx, [r14 + 0x10]
mov r9, r14
lea r8, [r14 + 0x18]
call fcn.1400d65c0
mov qword [rsp + 0x60], rbx
call fcn.14004b618
mov rcx, rax
test rax, rax
jne 0x1400a0a9b
mov ecx, 0x80004005
call fcn.14004a980
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], rdi
mov rdx, qword [r14 + 0x10]
lea rcx, [rdx - 0x18]
lea rdi, [rax - 0x18]
cmp rcx, rdi
je 0x1400a0b08
cmp dword [rdi + 0x10], 0
jl 0x1400a0afa
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400a0afa
call fcn.14004ecac
mov r14, rax
mov ecx, esi
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x1400a0aef
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [r14 + 0x18]
mov qword [rsp + 0x68], rax
jmp 0x1400a0b08
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x68]
call fcn.14004edac
lea rax, [rbp + 0x78]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebx
lea r9, [rsp + 0x60]
lea r8, [0x140095c90]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
jne 0x1400a0b81
lea rcx, str.CreateThread_failed
call fcn.1400a4fd0
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400a0b5c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x58]
call fcn.1400b2400
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1400a0cb7
mov eax, esi
lock xadd dword [rcx + 8], eax
jmp 0x1400a0c8d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rbp - 0x80]
call fcn.1400a0d20
mov r14d, eax
lea rcx, [rsp + 0x58]
call fcn.1400b2490
lea rcx, [0x14021ce90]
call fcn.1400a0500
test r13, r13
je 0x1400a0bd4
call fcn.140070690
mov rcx, rax
call fcn.1400702b0
mov rcx, r13
call fcn.140070280
mov edx, 0x230
mov rcx, r13
call fcn.1400dce50
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400a0bf3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x58]
call fcn.1400b2400
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1400a0c39
mov eax, esi
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1400a0c39
mov rdi, qword [rsp + 0x38]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, esi
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x1400a0c39
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x1400a0c56
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x1400a0c68
call fcn.1400eb530
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x60], rbx
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x1400a0c7a
call fcn.1400eb530
mov eax, r14d
jmp 0x1400a0cfa
test r12, r12
je 0x1400a0cb7
mov eax, esi
lock xadd dword [r12 + 8], eax
cmp eax, 1
jne 0x1400a0cb7
mov rdi, qword [rsp + 0x38]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, esi
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x1400a0cb7
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x1400a0cd4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x1400a0ce6
call fcn.1400eb530
mov qword [rbp - 0x68], rbx
mov rcx, qword [rbp - 0x78]
test rcx, rcx
mov qword [rbp - 0x60], rbx
je 0x1400a0cf8
call fcn.1400eb530
xor eax, eax
mov rbx, qword [rsp + 0x160]
add rsp, 0x120
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret