Function at 0x140223380
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x358
mov rsi, qword [rdx + 0x10]
mov rdi, qword [rdx + 8]
cmp rsi, rdi
mov r8, rdi
cmovb r8, rsi
mov rax, rcx
mov rcx, rdi
sub rcx, r8
cmp rcx, 8
jae 0x1402233ca
lea rcx, str.failed_to_fill_whole_buffer
mov qword [rax + 8], rcx
mov dword [rax], 1
jmp 0x1402234c0
mov rbx, qword [rdx]
mov r8, qword [rbx + r8]
lea rcx, [rsi + 8]
mov qword [rdx + 0x10], rcx
movabs r9, 0xe11ab1a1e011cfd0
cmp r8, r9
jne 0x140223499
xor r8d, r8d
mov r9, rdi
sub r9, rcx
cmovae r8, r9
cmp r8, 0x10
jb 0x1402233b4
lea rcx, [rsi + 0x18]
mov qword [rdx + 0x10], rcx
xor r8d, r8d
mov r9, rdi
sub r9, rcx
cmovae r8, r9
cmp r8, 2
jb 0x1402233b4
lea rcx, [rsi + 0x1a]
mov qword [rdx + 0x10], rcx
cmp rcx, rdi
cmovae rcx, rdi
mov r8, rdi
sub r8, rcx
cmp r8, 2
jb 0x1402233b4
movzx r8d, word [rbx + rcx]
lea rcx, [rsi + 0x1c]
mov qword [rdx + 0x10], rcx
cmp rcx, rdi
cmovae rcx, rdi
mov word [rsp + 0x30], r8w
mov r9, rdi
sub r9, rcx
cmp r9, 2
jb 0x1402233b4
movzx r9d, word [rbx + rcx]
lea rcx, [rsi + 0x1e]
mov qword [rdx + 0x10], rcx
mov word [rsp + 0x32], r9w
cmp r9w, 0xfffe
jne 0x1402234d4
cmp r8d, 3
je 0x1402235e4
cmp r8d, 4
jne 0x140223637
mov bpl, 1
jmp 0x1402235e6
lea rdx, str.Invalid_CFB_file__wrong_magic_number_
mov r8d, 0x25
mov cl, 0x15
mov rsi, rax
call fcn.140221a30
mov rcx, rax
mov rax, rsi
mov qword [rsi + 8], rcx
mov dword [rsi], 1
add rsp, 0x358
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x1404c9128]
mov qword [rsp + 0xf0], rcx
lea rcx, [0x1402853a0]
mov qword [rsp + 0xf8], rcx
lea rdx, [rsp + 0x32]
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0x108], rcx
mov qword [rsp + 0x80], 2
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 4
mov qword [rsp + 0xa0], 0
movabs rcx, 0x800000020
mov qword [rsp + 0xa8], rcx
mov byte [rsp + 0xb0], 3
mov qword [rsp + 0xb8], 2
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xd0], 4
mov qword [rsp + 0xd8], 1
mov qword [rsp + 0xe0], rcx
mov byte [rsp + 0xe8], 3
lea rcx, str.Invalid_CFB_byte_order_mark__expected_0x__found_0x
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], 3
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], 2
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], 2
lea rsi, [rsp + 0x110]
lea rdx, [rsp + 0x38]
jmp 0x14022369d
xor ebp, ebp
cmp rcx, rdi
cmovae rcx, rdi
mov r8, rdi
sub r8, rcx
cmp r8, 2
jb 0x1402233b4
movzx r8d, word [rbx + rcx]
lea rcx, [rsi + 0x20]
mov qword [rdx + 0x10], rcx
mov word [rsp + 0x34], r8w
test bpl, bpl
je 0x1402236c7
cmp r8w, 0xc
je 0x1402236d2
mov rdi, rax
mov word [rsp + 0x2c], 4
mov ax, 0xc
jmp 0x1402237ed
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x38], rcx
lea rcx, [0x140285bf0]
mov qword [rsp + 0x40], rcx
lea rcx, str.CFB_version__is_not_supported
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], 2
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], 1
lea rsi, [rsp + 0x128]
lea rdx, [rsp + 0x80]
mov rcx, rsi
mov rdi, rax
call fcn.140223bd0
mov cl, 0x15
mov rdx, rsi
call fcn.140221b40
mov rcx, rax
mov rax, rdi
mov qword [rdi + 8], rcx
mov dword [rdi], 1
jmp 0x1402234c0
cmp r8w, 9
jne 0x1402237df
cmp rcx, rdi
cmovae rcx, rdi
mov r8, rdi
sub r8, rcx
cmp r8, 2
jb 0x1402233b4
movzx r8d, word [rbx + rcx]
lea rcx, [rsi + 0x22]
mov qword [rdx + 0x10], rcx
mov word [rsp + 0x36], r8w
cmp r8w, 6
jne 0x140223887
xor r8d, r8d
mov r9, rdi
sub r9, rcx
cmovae r8, r9
cmp r8, 6
jb 0x1402233b4
lea rcx, [rsi + 0x28]
mov qword [rdx + 0x10], rcx
cmp rcx, rdi
cmovae rcx, rdi
mov r8, rdi
sub r8, rcx
cmp r8, 4
jb 0x1402233b4
mov r15d, dword [rbx + rcx]
lea rcx, [rsi + 0x2c]
mov qword [rdx + 0x10], rcx
cmp rcx, rdi
cmovae rcx, rdi
mov r8, rdi
sub r8, rcx
cmp r8, 4
jb 0x1402233b4
mov r14, rax
mov r12d, dword [rbx + rcx]
lea rax, [rsi + 0x30]
mov qword [rdx + 0x10], rax
cmp rax, rdi
cmovae rax, rdi
mov rcx, rdi
sub rcx, rax
cmp rcx, 4
jb 0x1402237c5
mov r13, rdx
mov eax, dword [rbx + rax]
mov dword [rsp + 0x78], eax
lea rax, [rsi + 0x34]
mov qword [rdx + 0x10], rax
xor ecx, ecx
mov rdx, rdi
sub rdx, rax
cmovae rcx, rdx
cmp rcx, 4
jb 0x1402237c5
lea rax, [rsi + 0x38]
mov qword [r13 + 0x10], rax
cmp rax, rdi
cmovae rax, rdi
mov rcx, rdi
sub rcx, rax
cmp rcx, 4
jae 0x1402238fb
lea rcx, str.failed_to_fill_whole_buffer
mov rax, r14
mov qword [r14 + 8], rcx
mov dword [r14], 1
jmp 0x1402234c0
mov rdi, rax
mov word [rsp + 0x2c], 3
mov ax, 9
mov word [rsp + 0xf0], ax
lea rax, [rsp + 0x2c]
mov qword [rsp + 0x80], rax
lea rax, [0x140285bf0]
mov qword [rsp + 0x88], rax
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
lea rcx, [rsp + 0x34]
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xa8], rax
lea rax, str.Incorrect_sector_shift_for_CFB_version___expected___found__
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 4
mov qword [rsp + 0x58], 0
lea rax, [rsp + 0x80]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 3
lea rsi, [rsp + 0x140]
lea rdx, [rsp + 0x38]
mov rcx, rsi
jmp 0x1402236a3
lea rcx, [0x1404c9080]
mov qword [rsp + 0x38], rcx
lea rcx, [0x140285bf0]
mov qword [rsp + 0x40], rcx
lea rdx, [rsp + 0x36]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rcx
lea rcx, str.Incorrect_mini_sector_shift__expected
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], 3
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], 2
lea rsi, [rsp + 0x158]
jmp 0x140223695
mov ecx, dword [rbx + rax]
lea rax, [rsi + 0x3c]
mov qword [r13 + 0x10], rax
mov dword [rsp + 0x7c], ecx
cmp ecx, 0x1000
jne 0x140223a84
cmp rax, rdi
cmovae rax, rdi
mov rcx, rdi
sub rcx, rax
cmp rcx, 4
jb 0x1402237c5
mov eax, dword [rbx + rax]
mov dword [rsp + 0x74], eax
lea rax, [rsi + 0x40]
mov qword [r13 + 0x10], rax
cmp rax, rdi
cmovae rax, rdi
mov rcx, rdi
sub rcx, rax
cmp rcx, 4
jb 0x1402237c5
mov eax, dword [rbx + rax]
mov dword [rsp + 0x70], eax
lea rax, [rsi + 0x44]
mov qword [r13 + 0x10], rax
cmp rax, rdi
cmovae rax, rdi
mov rcx, rdi
sub rcx, rax
cmp rcx, 4
jb 0x1402237c5
mov eax, dword [rbx + rax]
mov dword [rsp + 0x6c], eax
lea rax, [rsi + 0x48]
mov qword [r13 + 0x10], rax
cmp rax, rdi
cmovae rax, rdi
mov rcx, rdi
sub rcx, rax
cmp rcx, 4
jb 0x1402237c5
mov eax, dword [rbx + rax]
mov dword [rsp + 0x68], eax
add rsi, 0x4c
mov qword [r13 + 0x10], rsi
lea rcx, [rsp + 0x1a4]
mov r8d, 0x1b4
mov dl, 0xff
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [rsp + 0x6c]
cmp ecx, 0xfffffffe
mov eax, 0xfffffffe
cmovb eax, ecx
xor edx, edx
lea rcx, str.failed_to_fill_whole_buffer
cmp rsi, rdi
mov r8, rdi
cmovb r8, rsi
mov r9, rdi
sub r9, r8
cmp r9, 4
jb 0x1402237cc
mov r8d, dword [rbx + r8]
add rsi, 4
mov qword [r13 + 0x10], rsi
mov dword [rsp + 0x2c], r8d
cmp r8d, 0xffffffff
je 0x140223a2b
cmp r8d, 0xfffffffa
ja 0x140223b15
mov dword [rsp + rdx + 0x1a4], r8d
add rdx, 4
cmp rdx, 0x1b4
jne 0x1402239db
mov dword [r14 + 4], r15d
mov dword [r14 + 8], r12d
mov ecx, dword [rsp + 0x78]
mov dword [r14 + 0xc], ecx
mov ecx, dword [rsp + 0x74]
mov dword [r14 + 0x10], ecx
mov ecx, dword [rsp + 0x70]
mov dword [r14 + 0x14], ecx
mov dword [r14 + 0x18], eax
mov eax, dword [rsp + 0x68]
mov dword [r14 + 0x1c], eax
lea rcx, [r14 + 0x20]
lea rdx, [rsp + 0x1a4]
mov r8d, 0x1b4
call sub.VCRUNTIME140.dll_memcpy
mov rax, r14
mov byte [r14 + 0x1d4], bpl
mov dword [r14], 0
jmp 0x1402234c0
lea rax, [0x1404c9020]
mov qword [rsp + 0x38], rax
lea rax, [0x140285e20]
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x7c]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
lea rax, str.Incorrect_mini_stream_cutoff__expected
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 3
mov qword [rsp + 0xa0], 0
lea rax, [rsp + 0x38]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], 2
lea rsi, [rsp + 0x170]
lea rdx, [rsp + 0x80]
mov rcx, rsi
call fcn.140223bd0
mov cl, 0x15
mov rdx, rsi
call fcn.140221b40
mov rcx, rax
jmp 0x1402237cc
lea rax, [rsp + 0x2c]
mov qword [rsp + 0xf0], rax
lea rax, [0x140285500]
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x80], 2
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 8
mov qword [rsp + 0xa0], 0
movabs rax, 0x800000020
mov qword [rsp + 0xa8], rax
mov byte [rsp + 0xb0], 3
lea rax, str.Initial_DIFAT_array_refers_to_invalid_sector_index_0x
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 1
lea rax, [rsp + 0x80]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 1
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 1
lea rsi, [rsp + 0x188]
lea rdx, [rsp + 0x38]
jmp 0x140223afb