Function at 0x140028e50
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1d0]
sub rsp, 0x2d0
mov rdi, rdx
mov r13, rcx
xor esi, esi
mov dword [rbp - 0x78], esi
lea r14, vtable.CVolCommonBaseWithMemManager.0
mov qword [rbp - 0x70], r14
lea r12, vtable.CVolObject.0
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x60], rsi
lea rdx, vtable.CWString.0
mov qword [rbp - 0x70], rdx
lea rax, [rbp - 0x50]
mov qword [rbp + 0x218], rax
mov qword [rbp - 0x50], r14
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], rsi
mov qword [rbp - 0x40], rsi
lea r15, vtable.CVolMem.0
mov qword [rbp - 0x50], r15
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x30], rsi
mov ecx, 0x40
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x58], rsi
mov qword [rbp - 0x20], 0xfe
mov qword [rbp - 0x10], r14
mov qword [rbp - 0x10], r12
mov qword [rbp - 8], rsi
mov qword [rbp], rsi
lea rax, vtable.rg_n380::rg_n2529.0
mov qword [rbp - 0x10], rax
lea rax, vtable.rg_n380::rg_n2106.0
mov qword [rbp - 0x10], rax
lea rax, [rbp + 8]
mov qword [rbp + 0x220], rax
mov qword [rbp + 8], r14
lea rax, vtable.CMStringArray.0
mov qword [rbp + 8], rax
lea rax, [rbp + 0x10]
mov qword [rbp + 0x228], rax
mov qword [rbp + 0x10], r14
mov qword [rbp + 0x10], r12
mov qword [rbp + 0x18], rsi
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x10], r15
mov qword [rbp + 0x28], rsi
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x30], rsi
mov qword [rbp + 0x40], rcx
mov qword [rbp + 0x40], 0x100
mov qword [rbp + 0x50], r14
mov qword [rbp + 0x50], r12
mov qword [rbp + 0x58], rsi
mov qword [rbp + 0x60], rsi
mov qword [rbp + 0x50], rdx
lea rax, [rbp + 0x70]
mov qword [rbp + 0x110], rax
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x70], r12
mov qword [rbp + 0x78], rsi
mov qword [rbp + 0x80], rsi
mov qword [rbp + 0x70], r15
mov qword [rbp + 0x88], rsi
mov qword [rbp + 0x98], rsi
mov qword [rbp + 0x90], rsi
mov qword [rbp + 0xa0], rcx
mov qword [rbp + 0x68], rsi
mov qword [rbp + 0xa0], 0xfe
mov qword [rbp + 0x50], rdx
mov rbx, qword [rbp + 0x98]
cmp rbx, 2
jb 0x140028fec
mov rax, qword [rbp + 0x88]
cmp word [rax + rbx - 2], si
jne 0x140028fec
sub rbx, 2
mov qword [rbp + 0x98], rbx
lea rdx, [rbx + 0x14]
lea rcx, [rbp + 0x70]
call fcn.140038240
lea rcx, [rax + rbx]
movups xmm0, xmmword [str._Imageset]
movups xmmword [rcx], xmm0
mov eax, dword [reloc.WS2_32.dll_WSACleanup]
mov dword [rcx + 0x10], eax
mov qword [rbp + 0xb0], r14
mov qword [rbp + 0xb0], r12
mov qword [rbp + 0xb8], rsi
mov qword [rbp + 0xc0], rsi
lea rcx, vtable.CWString.0
mov qword [rbp + 0xb0], rcx
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x218], rax
mov qword [rbp + 0xd0], r14
mov qword [rbp + 0xd0], r12
mov qword [rbp + 0xd8], rsi
mov qword [rbp + 0xe0], rsi
mov qword [rbp + 0xd0], r15
mov qword [rbp + 0xe8], rsi
mov qword [rbp + 0xf8], rsi
mov qword [rbp + 0xf0], rsi
mov qword [rbp + 0x100], 0x40
mov qword [rbp + 0xc8], rsi
mov qword [rbp + 0x100], 0xfe
mov qword [rbp + 0xb0], rcx
mov rbx, qword [rbp + 0xf8]
cmp rbx, 2
jb 0x1400290cb
mov rax, qword [rbp + 0xe8]
cmp word [rax + rbx - 2], 0
jne 0x1400290cb
sub rbx, 2
mov qword [rbp + 0xf8], rbx
lea rdx, [rbx + 0x32]
lea rcx, [rbp + 0xd0]
call fcn.140038240
lea rcx, [rax + rbx]
movups xmm0, xmmword [str.__xml_version_1.0_____r_n]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x14006a030]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [0x14006a040]
movups xmmword [rcx + 0x20], xmm0
movzx eax, word [0x14006a050]
mov word [rcx + 0x30], ax
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov r12d, 0x40
mov qword [rsp + 0x60], r12
mov r14d, 1
mov dword [rbp - 0x78], r14d
mov rcx, qword [rdi + 0x18]
test rcx, rcx
jne 0x140029167
cmp qword [rdi + 0x48], rcx
je 0x1400292ab
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x1400292ab
cmp word [rcx], 0
je 0x1400292ab
lea rdx, [0x14006a3f4]
call fcn.14004a4ec
mov rsi, rax
test rax, rax
je 0x140029283
xor edx, edx
lea r8d, [rdx + 2]
mov rcx, rax
call fcn.1400476c4
mov rcx, rsi
call fcn.14004af1c
movsxd rdi, eax
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.1400476c4
test rdi, rdi
jle 0x14002927b
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14002920a
cmp rdi, qword [rsp + 0x58]
je 0x140029245
mov rbx, qword [rsp + 0x60]
test rbx, rbx
cmovle rbx, r12
mov rax, qword [rsp + 0x50]
cmp rax, rdi
jl 0x1400291e7
sub rax, rdi
cmp rax, rbx
jle 0x140029240
mov rax, rdi
cqo
idiv rbx
sub rbx, rdx
add rbx, rdi
mov r8, rbx
mov rdx, rcx
lea rcx, [rsp + 0x30]
mov rax, qword [rsp + 0x30]
call qword [rax + 0x10]
jmp 0x140029233
mov rbx, qword [rsp + 0x60]
test rbx, rbx
cmovle rbx, r12
mov rax, rdi
cqo
idiv rbx
sub rbx, rdx
add rbx, rdi
mov rdx, rbx
lea rcx, [rsp + 0x30]
mov rax, qword [rsp + 0x30]
call qword [rax]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rbx
mov rcx, rax
mov qword [rsp + 0x58], rdi
mov r9, rsi
mov r8, rdi
mov rdx, r14
call fcn.14004a93c
mov rbx, rax
mov rcx, rsi
call fcn.14004b06c
test eax, eax
jne 0x14002927b
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140038240
mov rcx, rsi
call fcn.140046ec8
xor esi, esi
jmp 0x1400292ab
mov rcx, rsi
call fcn.140046ec8
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x14002929a
lea rcx, [rsp + 0x30]
mov rax, qword [rsp + 0x30]
call qword [rax + 0x18]
xor esi, esi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x118]
call fcn.140027560
mov rbx, rax
lea rcx, [rbp - 0x70]
mov rdx, qword [rbp - 0x70]
call qword [rdx + 0x88]
mov rcx, qword [rbx + 8]
mov qword [rbp - 0x68], rcx
mov rcx, qword [rbx + 0x10]
mov qword [rbp - 0x60], rcx
mov rcx, qword [rbx + 0x18]
mov qword [rbp - 0x58], rcx
lea rcx, [rbp - 0x50]
mov rdx, qword [rbp - 0x50]
call qword [rdx + 0x88]
lea rdx, [rbx + 0x20]
lea rcx, [rbp - 0x50]
call fcn.140001d40
nop
lea rax, [rbp + 0x138]
mov qword [rbp + 0x218], rax
mov qword [rbp + 0x138], r15
mov rdx, qword [rbp + 0x150]
test rdx, rdx
je 0x14002932f
lea rcx, [rbp + 0x138]
call qword [method.CWString.virtual_24]
mov qword [rbp + 0x150], rsi
mov qword [rbp + 0x160], rsi
mov qword [rbp + 0x158], rsi
lea rdi, vtable.CVolObject.0
mov qword [rbp + 0x138], rdi
mov qword [rbp + 0x118], rdi
mov eax, r14d
and eax, 0xfffffffe
mov dword [rbp - 0x78], eax
mov qword [rsp + 0x30], r15
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x14002937e
lea rcx, [rsp + 0x30]
mov rax, qword [rsp + 0x30]
call qword [rax + 0x18]
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x30], rdi
lea rbx, [0x1400686d0]
mov r8, qword [rbp + 0x68]
test r8, r8
jne 0x1400293b5
mov r8, rbx
cmp qword [rbp + 0x98], 0
cmovne r8, qword [rbp + 0x88]
mov rax, qword [rbp - 0x58]
test rax, rax
jne 0x1400293cb
mov rax, rbx
cmp qword [rbp - 0x28], 0
cmovne rax, qword [rbp - 0x38]
mov qword [rsp + 0x20], r14
mov r9, r14
lea rdx, [rbp + 8]
mov rcx, rax
call fcn.140036230
cmp eax, 0xa
jge 0x1400293ec
mov r14d, esi
jmp 0x140029739
mov r15, rsi
movsxd r12, eax
test eax, eax
jle 0x140029732
lea r14, vtable.CVolMem.0
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rbp + 0x28]
cmp qword [rbp + 0x38], 0
cmove rcx, rsi
movsxd rax, r15d
mov rdx, qword [rcx + rax*8]
lea rcx, vtable.CVolCommonBaseWithMemManager.0
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rsi
lea r8, vtable.CWString.0
mov qword [rsp + 0x30], r8
lea rax, [rsp + 0x50]
mov qword [rbp + 0x218], rax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x70], rsi
mov eax, 0x40
mov qword [rbp - 0x80], rax
mov qword [rsp + 0x48], rsi
mov qword [rbp - 0x80], 0xfe
mov qword [rsp + 0x30], r8
test rdx, rdx
cmove rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140039890
nop
lea rcx, [rbp - 0x70]
mov rax, qword [rbp - 0x70]
call qword [rax + 0x88]
mov rax, qword [rsp + 0x38]
mov qword [rbp - 0x68], rax
mov rax, qword [rsp + 0x40]
mov qword [rbp - 0x60], rax
mov rax, qword [rsp + 0x48]
mov qword [rbp - 0x58], rax
lea rcx, [rbp - 0x50]
mov rax, qword [rbp - 0x50]
call qword [rax + 0x88]
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x50]
call fcn.140001d40
nop
lea rax, [rsp + 0x50]
mov qword [rbp + 0x220], rax
mov qword [rsp + 0x50], r14
mov rdx, qword [rsp + 0x68]
test rdx, rdx
je 0x14002951a
lea rcx, [rsp + 0x50]
mov rax, qword [rsp + 0x50]
call qword [rax + 0x18]
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x30], rdi
mov rax, qword [rbp - 0x58]
test rax, rax
jne 0x140029549
mov rax, rbx
cmp qword [rbp - 0x28], 0
cmovne rax, qword [rbp - 0x38]
cmp word [rax], 0
je 0x140029720
lea r8, [rbp + 0x50]
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x118]
call fcn.14003abb0
nop
lea r8, [rbp - 0x70]
mov rdx, rax
lea rcx, [rbp + 0x170]
call fcn.14003abb0
mov rbx, rax
lea rcx, [rbp - 0x70]
mov rdx, qword [rbp - 0x70]
call qword [rdx + 0x88]
mov rcx, qword [rbx + 8]
mov qword [rbp - 0x68], rcx
mov rcx, qword [rbx + 0x10]
mov qword [rbp - 0x60], rcx
mov rcx, qword [rbx + 0x18]
mov qword [rbp - 0x58], rcx
lea rcx, [rbp - 0x50]
mov rdx, qword [rbp - 0x50]
call qword [rdx + 0x88]
lea rdx, [rbx + 0x20]
lea rcx, [rbp - 0x50]
call fcn.140001d40
nop
lea rax, [rbp + 0x190]
mov qword [rbp + 0x228], rax
mov qword [rbp + 0x190], r14
mov rdx, qword [rbp + 0x1a8]
test rdx, rdx
je 0x1400295f5
lea rcx, [rbp + 0x190]
mov rax, qword [rbp + 0x190]
call qword [rax + 0x18]
mov qword [rbp + 0x1a8], rsi
mov qword [rbp + 0x1b8], rsi
mov qword [rbp + 0x1b0], rsi
mov qword [rbp + 0x190], rdi
mov qword [rbp + 0x170], rdi
lea rax, [rbp + 0x138]
mov qword [rbp + 0x110], rax
mov qword [rbp + 0x138], r14
mov rdx, qword [rbp + 0x150]
test rdx, rdx
je 0x14002964a
lea rcx, [rbp + 0x138]
mov rax, qword [rbp + 0x138]
call qword [rax + 0x18]
mov qword [rbp + 0x150], rsi
mov qword [rbp + 0x160], rsi
mov qword [rbp + 0x158], rsi
mov qword [rbp + 0x138], rdi
mov qword [rbp + 0x118], rdi
mov rdi, qword [rbp - 0x58]
test rdi, rdi
jne 0x140029690
cmp qword [rbp - 0x28], rdi
jne 0x14002968c
lea rdi, [0x1400686d0]
lea r14, [r13 + 0x598]
jmp 0x14002969c
mov rdi, qword [rbp - 0x38]
lea r14, [r13 + 0x598]
test rdi, rdi
je 0x1400296d8
mov rbx, 0xffffffffffffffff
inc rbx
cmp word [rdi + rbx*2], 0
jne 0x1400296a3
test rbx, rbx
jle 0x1400296d8
add rbx, rbx
mov rax, qword [r14]
lea rdx, [rbx + 2]
mov rcx, r14
call qword [rax]
mov rsi, rax
mov r8, rbx
mov rdx, rdi
mov rcx, rax
call fcn.1400452f0
xor eax, eax
mov word [rbx + rsi], ax
lea rcx, [r14 + 8]
mov rbx, qword [rcx + 0x28]
mov rax, qword [rcx + 0x20]
sub rax, rbx
cmp rax, 8
jl 0x1400296fc
mov rax, qword [rcx + 0x18]
mov qword [rbx + rax], rsi
add qword [rcx + 0x28], 8
jmp 0x140029709
lea rdx, [rbx + 8]
call fcn.140038240
mov qword [rax + rbx], rsi
lea rbx, [0x1400686d0]
lea r14, vtable.CVolMem.0
lea rdi, vtable.CVolObject.0
xor esi, esi
inc r15
cmp r15, r12
jl 0x140029410
mov r14d, 1
lea r15, vtable.CVolMem.0
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x218], rax
mov qword [rbp + 0xd0], r15
mov rdx, qword [rbp + 0xe8]
test rdx, rdx
je 0x140029767
lea rcx, [rbp + 0xd0]
call qword [method.CWString.virtual_24]
mov qword [rbp + 0xe8], rsi
mov qword [rbp + 0xf8], rsi
mov qword [rbp + 0xf0], rsi
mov qword [rbp + 0xd0], rdi
mov qword [rbp + 0xb0], rdi
lea rax, [rbp + 0x70]
mov qword [rbp + 0x218], rax
mov qword [rbp + 0x70], r15
mov rdx, qword [rbp + 0x88]
test rdx, rdx
je 0x1400297af
lea rcx, [rbp + 0x70]
call qword [method.CWString.virtual_24]
mov qword [rbp + 0x88], rsi
mov qword [rbp + 0x98], rsi
mov qword [rbp + 0x90], rsi
mov qword [rbp + 0x70], rdi
mov qword [rbp + 0x50], rdi
lea rax, [rbp + 8]
mov qword [rbp + 0x218], rax
lea rax, vtable.CMStringArray.0
mov qword [rbp + 8], rax
mov rdx, qword [rbp + 0x28]
mov rsi, rdx
mov rdi, qword [rbp + 0x38]
test rdi, rdi
mov r15d, 0
cmove rsi, r15
shr rdi, 3
mov ebx, r15d
test rdi, rdi
je 0x140029826
mov rdx, qword [rsi + rbx*8]
test rdx, rdx
je 0x14002981a
lea rcx, [rbp + 8]
mov rax, qword [rbp + 8]
call qword [rax + 0x18]
inc rbx
cmp rbx, rdi
jl 0x140029806
mov rdx, qword [rbp + 0x28]
test rdx, rdx
je 0x140029836
lea rcx, [rbp + 0x10]
mov rax, qword [rbp + 0x10]
call qword [rax + 0x18]
mov qword [rbp + 0x28], r15
mov qword [rbp + 0x38], r15
mov qword [rbp + 0x30], r15
lea rax, [rbp + 0x10]
mov qword [rbp + 0x218], rax
lea rcx, vtable.CVolMem.0
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x28], r15
mov qword [rbp + 0x38], r15
mov qword [rbp + 0x30], r15
lea r12, vtable.CVolObject.0
mov qword [rbp + 0x10], r12
mov qword [rbp - 0x10], r12
lea rax, [rbp - 0x50]
mov qword [rbp + 0x220], rax
mov qword [rbp - 0x50], rcx
mov rdx, qword [rbp - 0x38]
test rdx, rdx
je 0x140029895
lea rcx, [rbp - 0x50]
call qword [method.CWString.virtual_24]
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x28], r15
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x70], r12
mov eax, r14d
mov rbx, qword [rsp + 0x310]
add rsp, 0x2d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret