Function at 0x180003b80
Capabilities:
Terminate process

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x208]
sub rsp, 0x348
lea rdi, vtable.CVolCommonBaseWithMemManager.0
mov qword [rbp + 0xa0], rdi
lea rsi, vtable.CVolObject.0
mov qword [rbp + 0xa0], rsi
xor r13d, r13d
mov qword [rbp + 0xa8], r13
mov qword [rbp + 0xb0], r13
lea rcx, vtable.rg_n1::rg_n2366.0
mov qword [rbp + 0xa0], rcx
lea rax, vtable.rg_n1::rg_n1941.0
mov qword [rbp + 0xa0], rax
lea rax, [rbp + 0xb8]
mov qword [rbp + 0x250], rax
mov qword [rbp + 0xb8], rdi
lea rax, vtable.CMStringArray.0
mov qword [rbp + 0xb8], rax
lea rax, [rbp + 0xc0]
mov qword [rbp + 0x258], rax
mov qword [rbp + 0xc0], rdi
mov qword [rbp + 0xc0], rsi
mov qword [rbp + 0xc8], r13
mov qword [rbp + 0xd0], r13
lea r12, vtable.CVolMem.0
mov qword [rbp + 0xc0], r12
mov qword [rbp + 0xd8], r13
mov qword [rbp + 0xe8], r13
mov qword [rbp + 0xe0], r13
mov r14d, 0x40
mov qword [rbp + 0xf0], r14
mov qword [rbp + 0xf0], 0x100
mov qword [rbp + 0x40], rdi
mov qword [rbp + 0x40], rsi
mov qword [rbp + 0x48], r13
mov qword [rbp + 0x50], r13
lea rdx, vtable.CWString.0
mov qword [rbp + 0x40], rdx
lea rax, [rbp + 0x60]
mov qword [rbp + 0x260], rax
mov qword [rbp + 0x60], rdi
mov qword [rbp + 0x60], rsi
mov qword [rbp + 0x68], r13
mov qword [rbp + 0x70], r13
mov qword [rbp + 0x60], r12
mov qword [rbp + 0x78], r13
mov qword [rbp + 0x88], r13
mov qword [rbp + 0x80], r13
mov qword [rbp + 0x90], r14
mov qword [rbp + 0x58], r13
mov qword [rbp + 0x90], 0xfe
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x10], r13
mov qword [rbp - 0x20], rdx
lea rax, [rbp]
mov qword [rbp + 0x268], rax
mov qword [rbp], rdi
mov qword [rbp], rsi
mov qword [rbp + 8], r13
mov qword [rbp + 0x10], r13
mov qword [rbp], r12
mov qword [rbp + 0x18], r13
mov qword [rbp + 0x28], r13
mov qword [rbp + 0x20], r13
mov qword [rbp + 0x30], r14
mov qword [rbp - 8], r13
mov qword [rbp + 0x30], 0xfe
mov qword [rbp + 0x100], rdi
mov qword [rbp + 0x100], rsi
mov qword [rbp + 0x108], r13
mov qword [rbp + 0x110], r13
mov qword [rbp + 0x100], rcx
lea rax, vtable.rg_n1::rg_n336.0
mov qword [rbp + 0x100], rax
lea rax, [rbp + 0x118]
mov qword [rbp + 0x1e0], rax
lea rax, [rbp + 0x118]
mov qword [rbp + 0x1e8], rax
mov qword [rbp + 0x118], rdi
mov qword [rbp + 0x118], rsi
mov qword [rbp + 0x120], r13
mov qword [rbp + 0x128], r13
mov qword [rbp + 0x118], r12
mov qword [rbp + 0x130], r13
mov qword [rbp + 0x140], r13
mov qword [rbp + 0x138], r13
mov qword [rbp + 0x148], r14
mov qword [rbp + 0x148], 0x80
mov qword [rbp + 0x150], rdi
mov qword [rbp + 0x150], rsi
mov qword [rbp + 0x158], r13
mov qword [rbp + 0x160], r13
mov qword [rbp + 0x150], r12
mov qword [rbp + 0x168], r13
mov qword [rbp + 0x178], r13
mov qword [rbp + 0x170], r13
mov qword [rbp + 0x180], r14
mov dword [rsp + 0x80], 0xe4
mov dword [rsp + 0x78], 0x3a
mov dword [rsp + 0x70], 0xa6
mov dword [rsp + 0x68], 0x4a
mov dword [rsp + 0x60], 0x80
mov dword [rsp + 0x58], 0x2c
mov dword [rsp + 0x50], 0x3f
mov dword [rsp + 0x48], 0x2c
mov dword [rsp + 0x40], 0xf5
mov dword [rsp + 0x38], 0xd
mov dword [rsp + 0x30], 0x15
mov dword [rsp + 0x28], 0xb
mov dword [rsp + 0x20], 0x47
lea edx, [r13 + 0xf]
lea r9d, [r13 + 0x15]
lea r8d, [r13 + 0x42]
lea rcx, [rbp + 0x150]
call fcn.180014e50
mov rdx, rax
lea rcx, [rbp + 0x188]
call fcn.180006360
mov rbx, rax
lea rcx, [rbp + 0x40]
mov rdx, qword [rbp + 0x40]
call qword [rdx + 0x88]
mov rcx, qword [rbx + 8]
mov qword [rbp + 0x48], rcx
mov rcx, qword [rbx + 0x10]
mov qword [rbp + 0x50], rcx
mov rcx, qword [rbx + 0x18]
mov qword [rbp + 0x58], rcx
lea rcx, [rbp + 0x60]
mov rdx, qword [rbp + 0x60]
call qword [rdx + 0x88]
lea rdx, [rbx + 0x20]
lea rcx, [rbp + 0x60]
call fcn.180008de0
nop
lea rax, [rbp + 0x1a8]
mov qword [rbp + 0x1f0], rax
mov qword [rbp + 0x1a8], r12
mov rdx, qword [rbp + 0x1c0]
test rdx, rdx
je 0x180003ef9
lea rcx, [rbp + 0x1a8]
call qword [method.CWString.virtual_24]
mov qword [rbp + 0x1c0], r13
mov qword [rbp + 0x1d0], r13
mov qword [rbp + 0x1c8], r13
mov qword [rbp + 0x1a8], rsi
mov qword [rbp + 0x188], rsi
mov qword [rbp + 0x150], r12
mov rdx, qword [rbp + 0x168]
test rdx, rdx
je 0x180003f40
lea rcx, [rbp + 0x150]
mov rax, qword [rbp + 0x150]
call qword [rax + 0x18]
mov qword [rbp + 0x168], r13
mov qword [rbp + 0x178], r13
mov qword [rbp + 0x170], r13
mov qword [rbp + 0x150], rsi
mov qword [rbp - 0x80], rdi
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x80], r12
mov qword [rbp - 0x68], r13
mov qword [rbp - 0x58], r13
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x50], r14
mov dword [rsp + 0xb8], 0xe3
mov dword [rsp + 0xb0], 0x35
mov dword [rsp + 0xa8], 0x4f
mov qword [rsp + 0xa0], r13
mov dword [rsp + 0x98], 0x90
mov dword [rsp + 0x90], 0x24
mov dword [rsp + 0x88], 0x37
mov dword [rsp + 0x80], 0x24
mov dword [rsp + 0x78], 0xed
mov dword [rsp + 0x70], 0x31
mov dword [rsp + 0x68], 0x24
mov dword [rsp + 0x60], 0x23
mov dword [rsp + 0x58], 0x20
mov dword [rsp + 0x50], 0x2e
mov dword [rsp + 0x48], 0xb
mov dword [rsp + 0x40], 0x24
mov dword [rsp + 0x38], 0x2c
mov dword [rsp + 0x30], 0x20
mov dword [rsp + 0x28], 6
mov dword [rsp + 0x20], 0x2f
mov edx, 0x16
lea r9d, [rdx + 0x4a]
lea r8d, [rdx + 0x7c]
lea rcx, [rbp - 0x80]
call fcn.180014e50
mov rdx, rax
lea rcx, [rbp + 0x188]
call fcn.180006360
mov rbx, rax
lea rcx, [rbp - 0x20]
mov rdx, qword [rbp - 0x20]
call qword [rdx + 0x88]
mov rcx, qword [rbx + 8]
mov qword [rbp - 0x18], rcx
mov rcx, qword [rbx + 0x10]
mov qword [rbp - 0x10], rcx
mov rcx, qword [rbx + 0x18]
mov qword [rbp - 8], rcx
lea rcx, [rbp]
mov rdx, qword [rbp]
call qword [rdx + 0x88]
lea rdx, [rbx + 0x20]
lea rcx, [rbp]
call fcn.180008de0
nop
lea rax, [rbp + 0x1a8]
mov qword [rbp + 0x250], rax
mov qword [rbp + 0x1a8], r12
mov rdx, qword [rbp + 0x1c0]
test rdx, rdx
je 0x1800040cd
lea rcx, [rbp + 0x1a8]
call qword [method.CWString.virtual_24]
mov qword [rbp + 0x1c0], r13
mov qword [rbp + 0x1d0], r13
mov qword [rbp + 0x1c8], r13
mov qword [rbp + 0x1a8], rsi
mov qword [rbp + 0x188], rsi
mov qword [rbp - 0x80], r12
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x180004108
lea rcx, [rbp - 0x80]
mov rax, qword [rbp - 0x80]
call qword [rax + 0x18]
mov qword [rbp - 0x68], r13
mov qword [rbp - 0x58], r13
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x80], rsi
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0xa0]
call fcn.18000f9a0
mov r14, r13
mov rdx, qword [rbp + 0xe8]
mov rax, rdx
shr rax, 3
lea r15, [0x18003cf5c]
test eax, eax
jle 0x180004355
nop dword [rax + rax]
mov rcx, qword [rbp + 0xd8]
test rdx, rdx
cmove rcx, r13
movsxd rax, r14d
mov rbx, qword [rcx + rax*8]
test rbx, rbx
cmove rbx, r15
mov qword [rbp - 0x80], rdi
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], r13
lea rcx, vtable.CWString.0
mov qword [rbp - 0x80], rcx
lea rax, [rbp - 0x60]
mov qword [rbp + 0x250], rax
mov qword [rbp - 0x60], rdi
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x58], r13
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x30], 0x40
mov qword [rbp - 0x68], r13
mov qword [rbp - 0x30], 0xfe
mov qword [rbp - 0x80], rcx
test rbx, rbx
je 0x180004287
cmp word [rbx], 0
je 0x180004287
mov rcx, qword [rbp - 0x48]
mov rdi, qword [rbp - 0x38]
cmp rdi, 2
jb 0x1800041fb
cmp word [rdi + rcx - 2], 0
jne 0x1800041fb
sub rdi, 2
mov qword [rbp - 0x38], rdi
mov rax, 0xffffffffffffffff
lea rax, [rax + 1]
cmp word [rbx + rax*2], 0
jne 0x180004202
lea rsi, [rax*2 + 2]
mov rax, qword [rbp - 0x40]
sub rax, rdi
cmp rax, rsi
jl 0x180004258
cmp rsi, 2
jne 0x180004234
movzx eax, word [rbx]
mov word [rdi + rcx], ax
add qword [rbp - 0x38], rsi
jmp 0x180004279
cmp rsi, 4
jne 0x180004245
mov eax, dword [rbx]
mov dword [rdi + rcx], eax
add qword [rbp - 0x38], rsi
jmp 0x180004279
cmp rsi, 8
jne 0x180004258
mov rax, qword [rbx]
mov qword [rdi + rcx], rax
add qword [rbp - 0x38], rsi
jmp 0x180004279
test rsi, rsi
jle 0x180004279
lea rdx, [rdi + rsi]
lea rcx, [rbp - 0x60]
call fcn.180014d70
lea rcx, [rdi + rax]
mov r8, rsi
mov rdx, rbx
call fcn.18001c470
lea rsi, vtable.CVolObject.0
lea rdi, vtable.CVolCommonBaseWithMemManager.0
mov rdx, qword [rbp + 0x58]
test rdx, rdx
jne 0x1800042a0
mov rdx, r15
cmp qword [rbp + 0x88], 0
cmovne rdx, qword [rbp + 0x78]
mov rax, qword [rbp - 0x68]
test rax, rax
jne 0x1800042b6
mov rax, r15
cmp qword [rbp - 0x38], 0
cmovne rax, qword [rbp - 0x48]
sub rdx, rax
nop dword [rax]
movzx ebx, word [rax]
movzx ecx, word [rax + rdx]
sub ebx, ecx
jne 0x1800042d3
add rax, 2
test ecx, ecx
jne 0x1800042c0
lea rax, [rbp - 0x60]
mov qword [rbp + 0x258], rax
mov qword [rbp - 0x60], r12
mov rdx, qword [rbp - 0x48]
test rdx, rdx
je 0x1800042f6
lea rcx, [rbp - 0x60]
mov rax, qword [rbp - 0x60]
call qword [rax + 0x18]
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x80], rsi
test ebx, ebx
jne 0x180004339
lea rcx, [rbp + 0x40]
call fcn.18000f2d0
movsxd r8, eax
xor edx, edx
lea ecx, [rbx + 1]
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov ebx, eax
xor edx, edx
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc r14
mov rdx, qword [rbp + 0xe8]
mov rax, rdx
shr rax, 3
cdqe
cmp r14, rax
jl 0x180004150
mov r12, r13
mov rax, rdx
shr rax, 3
lea r14, vtable.CVolMem.0
test eax, eax
jle 0x180004625
nop
mov rcx, qword [rbp + 0xd8]
test rdx, rdx
cmove rcx, r13
movsxd rax, r12d
mov rdi, qword [rcx + rax*8]
test rdi, rdi
cmove rdi, r15
lea rcx, vtable.CVolCommonBaseWithMemManager.0
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], r13
lea rdx, vtable.CWString.0
mov qword [rbp - 0x80], rdx
lea rax, [rbp - 0x60]
mov qword [rbp + 0x250], rax
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x58], r13
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x40], r13
mov r8d, 0x40
mov qword [rbp - 0x30], r8
mov qword [rbp - 0x68], r13
mov qword [rbp - 0x30], 0xfe
mov qword [rbp - 0x80], rdx
test rdi, rdi
je 0x18000455a
cmp word [rdi], 0
je 0x18000455a
mov rcx, qword [rbp - 0x48]
mov rbx, qword [rbp - 0x38]
cmp rbx, 2
jb 0x180004424
cmp word [rbx + rcx - 2], 0
jne 0x180004424
sub rbx, 2
mov qword [rbp - 0x38], rbx
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
lea rax, [rax + 1]
cmp word [rdi + rax*2], 0
jne 0x180004430
lea r15, [rax*2 + 2]
mov rdx, qword [rbp - 0x40]
mov rax, rdx
sub rax, rbx
cmp rax, r15
jl 0x180004492
cmp r15, 2
jne 0x180004468
movzx eax, word [rdi]
mov word [rbx + rcx], ax
add qword [rbp - 0x38], r15
jmp 0x180004553
cmp r15, 4
jne 0x18000447c
mov eax, dword [rdi]
mov dword [rbx + rcx], eax
add qword [rbp - 0x38], r15
jmp 0x180004553
cmp r15, 8
jne 0x180004492
mov rax, qword [rdi]
mov qword [rbx + rcx], rax
add qword [rbp - 0x38], r15
jmp 0x180004553
test r15, r15
jle 0x180004553
lea rsi, [r15 + rbx]
cmp rsi, rbx
je 0x18000453e
test rsi, rsi
jne 0x1800044d1
test rcx, rcx
je 0x1800044c0
mov rdx, rcx
lea rcx, [rbp - 0x60]
mov rax, qword [rbp - 0x60]
call qword [rax + 0x18]
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x40], r13
mov rcx, r13
jmp 0x18000453e
test rcx, rcx
jne 0x1800044e4
mov rdx, rsi
lea rcx, [rbp - 0x60]
call fcn.180014cf0
jmp 0x18000453b
mov r14, qword [rbp - 0x30]
test r14, r14
cmovle r14, r8
cmp rdx, rsi
jl 0x180004509
sub rdx, rsi
cmp rdx, r14
jg 0x180004509
mov qword [rbp - 0x38], rsi
lea r14, vtable.CVolMem.0
jmp 0x18000453e
mov rax, rsi
cqo
idiv r14
sub r14, rdx
add r14, rsi
mov r8, r14
mov rdx, rcx
lea rcx, [rbp - 0x60]
mov rax, qword [rbp - 0x60]
call qword [rax + 0x10]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], rsi
lea r14, vtable.CVolMem.0
mov rcx, rax
add rcx, rbx
mov r8, r15
mov rdx, rdi
call fcn.18001c470
lea rsi, vtable.CVolObject.0
lea r15, [0x18003cf5c]
mov rdx, qword [rbp + 0x58]
test rdx, rdx
jne 0x180004573
mov rdx, r15
cmp qword [rbp + 0x88], 0
cmovne rdx, qword [rbp + 0x78]
mov rax, qword [rbp - 0x68]
test rax, rax
jne 0x180004589
mov rax, r15
cmp qword [rbp - 0x38], 0
cmovne rax, qword [rbp - 0x48]
sub rdx, rax
nop dword [rax]
movzx ebx, word [rax]
movzx ecx, word [rax + rdx]
sub ebx, ecx
jne 0x1800045a3
add rax, 2
test ecx, ecx
jne 0x180004590
lea rax, [rbp - 0x60]
mov qword [rbp + 0x258], rax
mov qword [rbp - 0x60], r14
mov rdx, qword [rbp - 0x48]
test rdx, rdx
je 0x1800045c6
lea rcx, [rbp - 0x60]
mov rax, qword [rbp - 0x60]
call qword [rax + 0x18]
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x80], rsi
test ebx, ebx
jne 0x180004609
lea rcx, [rbp + 0x40]
call fcn.18000f2d0
movsxd r8, eax
xor edx, edx
lea ecx, [rbx + 1]
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov ebx, eax
xor edx, edx
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc r12
mov rdx, qword [rbp + 0xe8]
mov rax, rdx
shr rax, 3
cdqe
cmp r12, rax
jl 0x180004370
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0xa0]
call fcn.18000f9a0
mov r12, r13
mov rdx, qword [rbp + 0xe8]
mov rax, rdx
shr rax, 3
test eax, eax
jle 0x180004905
mov rcx, qword [rbp + 0xd8]
test rdx, rdx
cmove rcx, r13
movsxd rax, r12d
mov rdi, qword [rcx + rax*8]
test rdi, rdi
cmove rdi, r15
lea rcx, vtable.CVolCommonBaseWithMemManager.0
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], r13
lea rdx, vtable.CWString.0
mov qword [rbp - 0x80], rdx
lea rax, [rbp - 0x60]
mov qword [rbp + 0x250], rax
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x58], r13
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x40], r13
mov r8d, 0x40
mov qword [rbp - 0x30], r8
mov qword [rbp - 0x68], r13
mov qword [rbp - 0x30], 0xfe
mov qword [rbp - 0x80], rdx
test rdi, rdi
je 0x18000483a
cmp word [rdi], 0
je 0x18000483a
mov rcx, qword [rbp - 0x48]
mov rbx, qword [rbp - 0x38]
cmp rbx, 2
jb 0x180004705
cmp word [rbx + rcx - 2], 0
jne 0x180004705
sub rbx, 2
mov qword [rbp - 0x38], rbx
mov rax, 0xffffffffffffffff
nop dword [rax]
lea rax, [rax + 1]
cmp word [rdi + rax*2], 0
jne 0x180004710
lea r15, [rax*2 + 2]
mov rdx, qword [rbp - 0x40]
mov rax, rdx
sub rax, rbx
cmp rax, r15
jl 0x180004772
cmp r15, 2
jne 0x180004748
movzx eax, word [rdi]
mov word [rbx + rcx], ax
add qword [rbp - 0x38], r15
jmp 0x180004833
cmp r15, 4
jne 0x18000475c
mov eax, dword [rdi]
mov dword [rbx + rcx], eax
add qword [rbp - 0x38], r15
jmp 0x180004833
cmp r15, 8
jne 0x180004772
mov rax, qword [rdi]
mov qword [rbx + rcx], rax
add qword [rbp - 0x38], r15
jmp 0x180004833
test r15, r15
jle 0x180004833
lea rsi, [rbx + r15]
cmp rsi, rbx
je 0x18000481e
test rsi, rsi
jne 0x1800047b1
test rcx, rcx
je 0x1800047a0
mov rdx, rcx
lea rcx, [rbp - 0x60]
mov rax, qword [rbp - 0x60]
call qword [rax + 0x18]
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x40], r13
mov rcx, r13
jmp 0x18000481e
test rcx, rcx
jne 0x1800047c4
mov rdx, rsi
lea rcx, [rbp - 0x60]
call fcn.180014cf0
jmp 0x18000481b
mov r14, qword [rbp - 0x30]
test r14, r14
cmovle r14, r8
cmp rdx, rsi
jl 0x1800047e9
sub rdx, rsi
cmp rdx, r14
jg 0x1800047e9
mov qword [rbp - 0x38], rsi
lea r14, vtable.CVolMem.0
jmp 0x18000481e
mov rax, rsi
cqo
idiv r14
sub r14, rdx
add r14, rsi
mov r8, r14
mov rdx, rcx
lea rcx, [rbp - 0x60]
mov rax, qword [rbp - 0x60]
call qword [rax + 0x10]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], rsi
lea r14, vtable.CVolMem.0
mov rcx, rax
add rcx, rbx
mov r8, r15
mov rdx, rdi
call fcn.18001c470
lea rsi, vtable.CVolObject.0
lea r15, [0x18003cf5c]
mov rdx, qword [rbp - 8]
test rdx, rdx
jne 0x180004850
mov rdx, r15
cmp qword [rbp + 0x28], 0
cmovne rdx, qword [rbp + 0x18]
mov rax, qword [rbp - 0x68]
test rax, rax
jne 0x180004866
mov rax, r15
cmp qword [rbp - 0x38], 0
cmovne rax, qword [rbp - 0x48]
sub rdx, rax
nop dword [rax]
movzx ebx, word [rax]
movzx ecx, word [rax + rdx]
sub ebx, ecx
jne 0x180004883
add rax, 2
test ecx, ecx
jne 0x180004870
lea rax, [rbp - 0x60]
mov qword [rbp + 0x258], rax
mov qword [rbp - 0x60], r14
mov rdx, qword [rbp - 0x48]
test rdx, rdx
je 0x1800048a6
lea rcx, [rbp - 0x60]
mov rax, qword [rbp - 0x60]
call qword [rax + 0x18]
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x80], rsi
test ebx, ebx
jne 0x1800048e9
lea rcx, [rbp - 0x20]
call fcn.18000f2d0
movsxd r8, eax
xor edx, edx
lea ecx, [rbx + 1]
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov ebx, eax
xor edx, edx
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc r12
mov rdx, qword [rbp + 0xe8]
mov rax, rdx
shr rax, 3
cdqe
cmp r12, rax
jl 0x180004651
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0xa0]
call fcn.18000f9a0
mov r12, r13
mov rdx, qword [rbp + 0xe8]
mov rax, rdx
shr rax, 3
test eax, eax
jle 0x180004be5
mov rcx, qword [rbp + 0xd8]
test rdx, rdx
cmove rcx, r13
movsxd rax, r12d
mov rdi, qword [rcx + rax*8]
test rdi, rdi
cmove rdi, r15
lea rcx, vtable.CVolCommonBaseWithMemManager.0
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], r13
lea rdx, vtable.CWString.0
mov qword [rbp - 0x80], rdx
lea rax, [rbp - 0x60]
mov qword [rbp + 0x250], rax
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x58], r13
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x40], r13
mov r8d, 0x40
mov qword [rbp - 0x30], r8
mov qword [rbp - 0x68], r13
mov qword [rbp - 0x30], 0xfe
mov qword [rbp - 0x80], rdx
test rdi, rdi
je 0x180004b1a
cmp word [rdi], 0
je 0x180004b1a
mov rcx, qword [rbp - 0x48]
mov rbx, qword [rbp - 0x38]
cmp rbx, 2
jb 0x1800049e5
cmp word [rbx + rcx - 2], 0
jne 0x1800049e5
sub rbx, 2
mov qword [rbp - 0x38], rbx
mov rax, 0xffffffffffffffff
nop dword [rax]
lea rax, [rax + 1]
cmp word [rdi + rax*2], 0
jne 0x1800049f0
lea r15, [rax*2 + 2]
mov rdx, qword [rbp - 0x40]
mov rax, rdx
sub rax, rbx
cmp rax, r15
jl 0x180004a52
cmp r15, 2
jne 0x180004a28
movzx eax, word [rdi]
mov word [rbx + rcx], ax
add qword [rbp - 0x38], r15
jmp 0x180004b13
cmp r15, 4
jne 0x180004a3c
mov eax, dword [rdi]
mov dword [rbx + rcx], eax
add qword [rbp - 0x38], r15
jmp 0x180004b13
cmp r15, 8
jne 0x180004a52
mov rax, qword [rdi]
mov qword [rbx + rcx], rax
add qword [rbp - 0x38], r15
jmp 0x180004b13
test r15, r15
jle 0x180004b13
lea rsi, [r15 + rbx]
cmp rsi, rbx
je 0x180004afe
test rsi, rsi
jne 0x180004a91
test rcx, rcx
je 0x180004a80
mov rdx, rcx
lea rcx, [rbp - 0x60]
mov rax, qword [rbp - 0x60]
call qword [rax + 0x18]
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x40], r13
mov rcx, r13
jmp 0x180004afe
test rcx, rcx
jne 0x180004aa4
mov rdx, rsi
lea rcx, [rbp - 0x60]
call fcn.180014cf0
jmp 0x180004afb
mov r14, qword [rbp - 0x30]
test r14, r14
cmovle r14, r8
cmp rdx, rsi
jl 0x180004ac9
sub rdx, rsi
cmp rdx, r14
jg 0x180004ac9
mov qword [rbp - 0x38], rsi
lea r14, vtable.CVolMem.0
jmp 0x180004afe
mov rax, rsi
cqo
idiv r14
sub r14, rdx
add r14, rsi
mov r8, r14
mov rdx, rcx
lea rcx, [rbp - 0x60]
mov rax, qword [rbp - 0x60]
call qword [rax + 0x10]
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], rsi
lea r14, vtable.CVolMem.0
mov rcx, rax
add rcx, rbx
mov r8, r15
mov rdx, rdi
call fcn.18001c470
lea rsi, vtable.CVolObject.0
lea r15, [0x18003cf5c]
mov rdx, qword [rbp - 8]
test rdx, rdx
jne 0x180004b30
mov rdx, r15
cmp qword [rbp + 0x28], 0
cmovne rdx, qword [rbp + 0x18]
mov rax, qword [rbp - 0x68]
test rax, rax
jne 0x180004b46
mov rax, r15
cmp qword [rbp - 0x38], 0
cmovne rax, qword [rbp - 0x48]
sub rdx, rax
nop dword [rax]
movzx ebx, word [rax]
movzx ecx, word [rax + rdx]
sub ebx, ecx
jne 0x180004b63
add rax, 2
test ecx, ecx
jne 0x180004b50
lea rax, [rbp - 0x60]
mov qword [rbp + 0x258], rax
mov qword [rbp - 0x60], r14
mov rdx, qword [rbp - 0x48]
test rdx, rdx
je 0x180004b86
lea rcx, [rbp - 0x60]
mov rax, qword [rbp - 0x60]
call qword [rax + 0x18]
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x60], rsi
mov qword [rbp - 0x80], rsi
test ebx, ebx
jne 0x180004bc9
lea rcx, [rbp - 0x20]
call fcn.18000f2d0
movsxd r8, eax
xor edx, edx
lea ecx, [rbx + 1]
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov ebx, eax
xor edx, edx
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc r12
mov rdx, qword [rbp + 0xe8]
mov rax, rdx
shr rax, 3
cdqe
cmp r12, rax
jl 0x180004931
lea rax, [rbp + 0x118]
mov qword [rbp + 0x250], rax
lea rax, [rbp + 0x118]
mov qword [rbp + 0x258], rax
mov qword [rbp + 0x118], r14
mov rdx, qword [rbp + 0x130]
test rdx, rdx
je 0x180004c21
lea rcx, [rbp + 0x118]
call qword [method.CWString.virtual_24]
mov qword [rbp + 0x130], r13
mov qword [rbp + 0x140], r13
mov qword [rbp + 0x138], r13
mov qword [rbp + 0x118], rsi
mov qword [rbp + 0x100], rsi
lea rax, [rbp]
mov qword [rbp + 0x250], rax
mov qword [rbp], r14
mov rdx, qword [rbp + 0x18]
test rdx, rdx
je 0x180004c66
lea rcx, [rbp]
call qword [method.CWString.virtual_24]
mov qword [rbp + 0x18], r13
mov qword [rbp + 0x28], r13
mov qword [rbp + 0x20], r13
mov qword [rbp], rsi
mov qword [rbp - 0x20], rsi
lea rax, [rbp + 0x60]
mov qword [rbp + 0x250], rax
mov qword [rbp + 0x60], r14
mov rdx, qword [rbp + 0x78]
test rdx, rdx
je 0x180004c9c
lea rcx, [rbp + 0x60]
call qword [method.CWString.virtual_24]
mov qword [rbp + 0x78], r13
mov qword [rbp + 0x88], r13
mov qword [rbp + 0x80], r13
mov qword [rbp + 0x60], rsi
mov qword [rbp + 0x40], rsi
lea rcx, [rbp + 0xa0]
call fcn.180001e20
add rsp, 0x348
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret