Function at 0x14000fb80
Capabilities:
Read file on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r13
sub rsp, 0x50
mov rax, qword [0x1400546f0]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov esi, dword [rdx + 0x28]
xor ebp, ebp
mov rdi, rdx
cmp esi, dword [0x140057a38]
mov r13, rcx
je 0x14000fbc5
mov rcx, qword [0x140057a10]
test rcx, rcx
je 0x14000fbc5
call fcn.1400215c0
mov qword [0x140057a10], rbp
mov rcx, qword [0x140057a18]
mov edx, esi
mov dword [0x140057a38], esi
call fcn.1400140e0
mov rbx, rax
mov rax, qword [0x140057a10]
test rax, rax
jne 0x14000fc42
lea rdx, [0x140047330]
mov rcx, rbx
call fcn.140023b9c
mov qword [0x140057a10], rax
test rax, rax
jne 0x14000fc42
mov ecx, esi
call fcn.140017530
test eax, eax
jne 0x14000fc8d
mov rcx, rbx
call fcn.140021628
mov rcx, qword [0x140057a18]
mov edx, esi
call fcn.1400140e0
lea rdx, [0x140047330]
mov rcx, rax
mov rbx, rax
call fcn.140023b9c
mov qword [0x140057a10], rax
test rax, rax
je 0x14000fc03
mov rdx, qword [rdi + 0x30]
xor r8d, r8d
mov rcx, rax
call fcn.140021734
mov rcx, qword [0x140057a10]
test eax, eax
je 0x14000fc97
call fcn.1400215c0
mov qword [0x140057a10], rbp
call fcn.140021a98
mov ecx, dword [rax]
call fcn.1400219b4
lea rcx, str.reading_archive_fseek:
mov rdx, rax
call fcn.140001860
mov eax, 0xb
jmp 0x140010041
mov eax, 9
jmp 0x140010041
lea rdx, [0x1400493e8]
call fcn.14000b060
test eax, eax
jne 0x14000fcd4
mov rcx, qword [0x140057a10]
call fcn.1400215c0
mov qword [0x140057a10], rbp
mov rdx, qword [rdi + 0x60]
lea rcx, str.Did_not_find_entry_for
call fcn.140001860
mov eax, 3
jmp 0x140010041
mov r9, qword [0x140057a10]
mov edx, 0x1a
lea rcx, [rsp + 0x20]
lea r8d, [rdx - 0x19]
call fcn.140026874
cmp rax, 1
je 0x14000fd3f
mov rcx, qword [0x140057a10]
call fcn.140024038
mov ebx, eax
call fcn.140021a98
mov ecx, dword [rax]
call fcn.1400219b4
lea rcx, str.reading_local_entry:
mov rdx, rax
call fcn.140001860
mov rcx, qword [0x140057a10]
call fcn.1400215c0
mov eax, 2
mov r10d, 0xb
test ebx, ebx
cmovne eax, r10d
jmp 0x140010041
mov ecx, 0xc8
call fcn.140022488
mov rbx, rax
test rax, rax
jne 0x14000fd78
lea rdx, [0x14004672a]
lea rcx, str.reading_entry
call fcn.140001860
mov rcx, qword [0x140057a10]
call fcn.1400215c0
lea eax, [rbx + 4]
jmp 0x140010041
movzx ecx, byte [rsp + 0x21]
movzx eax, byte [rsp + 0x20]
mov qword [rsp + 0x90], r12
shl cx, 8
or cx, ax
mov word [rbx + 2], cx
movzx ecx, byte [rsp + 0x23]
movzx eax, byte [rsp + 0x22]
shl cx, 8
or cx, ax
mov word [rbx + 0x2e], cx
movzx ecx, byte [rsp + 0x25]
movzx eax, byte [rsp + 0x24]
shl cx, 8
or cx, ax
mov word [rbx + 6], cx
movzx eax, byte [rsp + 0x29]
shl ax, 8
movzx edx, ax
movzx eax, byte [rsp + 0x28]
or edx, eax
movzx eax, byte [rsp + 0x27]
shl ax, 8
shl edx, 0x10
movzx ecx, ax
movzx eax, byte [rsp + 0x26]
or edx, ecx
or edx, eax
mov dword [rbx + 8], edx
movzx eax, byte [rsp + 0x2d]
shl ax, 8
movzx edx, ax
movzx eax, byte [rsp + 0x2c]
or edx, eax
movzx eax, byte [rsp + 0x2b]
shl ax, 8
shl edx, 0x10
movzx ecx, ax
movzx eax, byte [rsp + 0x2a]
or edx, ecx
or edx, eax
mov dword [rbx + 0xc], edx
movzx eax, byte [rsp + 0x36]
movzx ecx, byte [rsp + 0x37]
shl cx, 8
or cx, ax
mov word [rbx + 0x20], cx
movzx eax, byte [rsp + 0x38]
movzx esi, byte [rsp + 0x39]
movzx r12d, cx
shl si, 8
mov qword [rbx + 0x48], rbp
or si, ax
lea eax, [r12 + 1]
mov qword [rbx + 0x40], rbp
movsxd rcx, eax
mov qword [rbx + 0x68], rbp
mov qword [rbx + 0x70], rbp
mov word [rbx + 0x22], si
mov qword [rbx + 0x78], rbp
mov qword [rbx + 0x80], rbp
mov qword [rbx + 0x88], rbp
call fcn.140022488
mov rbp, rax
mov qword [rbx + 0x60], rax
test rax, rax
je 0x140010034
test si, si
je 0x14000fea2
movzx ecx, si
call fcn.140022488
mov qword [rbx + 0x48], rax
test rax, rax
je 0x140010034
mov r9, qword [0x140057a10]
mov rdx, r12
mov r8d, 1
mov rcx, rbp
call fcn.140026874
cmp rax, 1
jne 0x140010011
movzx eax, word [rbx + 0x22]
test ax, ax
je 0x14000fef0
mov r9, qword [0x140057a10]
mov rcx, qword [rbx + 0x48]
movzx edx, ax
mov r8d, 1
call fcn.140026874
cmp rax, 1
jne 0x140010011
movzx ecx, word [rdi + 0x20]
mov rax, qword [rbx + 0x60]
mov byte [rcx + rax], 0
cmp dword [0x140053f48], 3
je 0x14000ff0d
mov rcx, rbx
call fcn.1400098e0
movzx eax, word [rdi]
movzx ecx, al
shr ax, 8
test ax, ax
jne 0x14000ff2b
cmp ecx, 0x19
je 0x14000ff2b
cmp ecx, 0x1a
je 0x14000ff2b
cmp ecx, 0x28
jne 0x14000ff3c
cmp ax, 6
je 0x14000ff3c
cmp ax, 0xb
jne 0x14000ff49
cmp ecx, 0x32
jne 0x14000ff49
mov rcx, qword [rbx + 0x60]
mov rdx, rcx
call qword [sym.imp.USER32.dll_OemToCharA]
movzx eax, word [rbx + 0x20]
inc eax
movsxd rcx, eax
call fcn.140022488
mov r11, rax
mov qword [rbx + 0x40], rax
test rax, rax
je 0x140010034
mov rcx, qword [rbx + 0x60]
nop dword [rax + rax]
movzx eax, byte [rcx]
inc r11
inc rcx
mov byte [r11 - 1], al
test al, al
jne 0x14000ff70
mov rcx, rbx
call fcn.140009e30
mov dword [0x1400579a0], eax
movzx eax, word [rbx + 2]
movzx ecx, word [rdi + 2]
cmp ax, cx
je 0x14000ffc7
movzx r9d, cx
lea rdx, str.Local_Version_Needed___d__does_not_match_CD___d_:
lea rcx, [0x1400a3e00]
movzx r8d, ax
call fcn.1400227d8
mov rdx, qword [rdi + 0x60]
lea rcx, [0x1400a3e00]
call fcn.140001860
movzx eax, word [rdi + 4]
cmp word [rbx + 0x2e], ax
je 0x14000ffe1
mov rdx, qword [rdi + 0x60]
lea rcx, str.Local_Entry_Flag_does_not_match_CD:
call fcn.140001860
mov eax, dword [rdi + 0xc]
cmp dword [rbx + 0xc], eax
je 0x14000fff9
mov rdx, qword [rdi + 0x60]
lea rcx, str.Local_Entry_CRC_does_not_match_CD:
call fcn.140001860
mov rax, qword [rdi + 0x18]
mov qword [rbx + 0x18], rax
mov rax, qword [rdi + 0x10]
mov qword [rbx + 0x10], rax
mov qword [r13], rbx
xor eax, eax
jmp 0x140010039
mov rcx, qword [0x140057a10]
call fcn.140024038
mov r11d, 2
mov r10d, 0xb
test eax, eax
cmovne r11d, r10d
mov eax, r11d
jmp 0x140010039
mov eax, 4
mov r12, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1400235a0
add rsp, 0x50
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret