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

Disassembly:
push rsi
sub rsp, 0x90
mov rax, qword [0x1803df868]
xor rax, rsp
mov qword [rsp + 0x60], rax
cmp qword [rcx + 0x18], 0
mov rsi, rcx
mov dword [rcx + 0x10], 0xc0000
jne 0x180266944
lea rax, [0x180307218]
mov qword [rcx + 0x18], rax
mov qword [rsp + 0xa8], rbx
xor r8d, r8d
mov qword [rsp + 0xb0], rbp
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x80], r13
lea edx, [r8 + 0x2a]
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x70], r15
call fcn.1802543e0
mov rdx, rax
test rax, rax
je 0x1802670de
mov rcx, qword [rsi + 0x9a8]
mov rdi, qword [rcx]
cmp byte [rdi + 0x90], 0
jne 0x180266a9c
cmp byte [rax], 0x4d
jne 0x180266a9c
cmp byte [rax + 1], 0x5a
jne 0x180266a9c
mov ebx, 0x1000
mov ebp, 5
nop dword [rax]
nop word [rax + rax]
lea r8, [rsp + 0x30]
mov rdx, rbx
mov rcx, rsi
call fcn.1802543e0
mov r8, rax
test rax, rax
jne 0x180266a00
sar rbx, 1
cmp rbx, 0x80
jge 0x1802669d0
lea r8, str.Couldnt_find_out_CAB_header
jmp 0x1802670e5
mov r9, qword [rsp + 0x30]
add rax, 8
add r9, r8
mov rdx, r8
cmp rax, r9
jae 0x180266a66
movzx ecx, byte [rdx + 4]
test cl, cl
je 0x180266a4e
cmp cl, 0x43
je 0x180266a47
cmp cl, 0x46
je 0x180266a40
cmp cl, 0x4d
je 0x180266a39
cmp cl, 0x53
mov eax, 3
cmovne rax, rbp
jmp 0x180266a5a
mov eax, 4
jmp 0x180266a5a
mov eax, 1
jmp 0x180266a5a
mov eax, 2
jmp 0x180266a5a
cmp qword [rdx], 0x4643534d
je 0x180266a76
mov rax, rbp
add rdx, rax
lea rax, [rdx + 8]
cmp rax, r9
jb 0x180266a14
sub rdx, r8
mov rcx, rsi
call fcn.1802543f0
jmp 0x1802669d0
sub rdx, r8
mov rcx, rsi
call fcn.1802543f0
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0x2a]
call fcn.1802543e0
mov rdx, rax
test rax, rax
je 0x1802670de
xor r14d, r14d
mov qword [rdi + 0x40], r14
cmp byte [rdx], 0x4d
jne 0x1802669f4
cmp byte [rdx + 1], 0x53
jne 0x1802669f4
cmp byte [rdx + 2], 0x43
jne 0x1802669f4
cmp byte [rdx + 3], 0x46
jne 0x1802669f4
movzx eax, byte [rdx + 0xa]
movzx ecx, byte [rdx + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 8]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x48], ecx
movzx eax, byte [rdx + 0x12]
movzx ecx, byte [rdx + 0x13]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x11]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x10]
shl ecx, 8
or ecx, eax
mov dword [rdi + 0x4c], ecx
movzx eax, byte [rdx + 0x18]
mov byte [rdi + 0x5b], al
movzx eax, byte [rdx + 0x19]
mov byte [rdi + 0x5a], al
movzx ecx, byte [rdx + 0x1b]
movzx eax, byte [rdx + 0x1a]
shl cx, 8
or cx, ax
mov word [rdi + 0x50], cx
je 0x180266c20
movzx ecx, byte [rdx + 0x1d]
movzx eax, byte [rdx + 0x1c]
shl cx, 8
or cx, ax
mov word [rdi + 0x52], cx
je 0x180266c20
movzx eax, byte [rdx + 0x1e]
lea ebx, [r14 + 0x24]
movzx r8d, byte [rdx + 0x1f]
shl r8w, 8
or r8w, ax
mov word [rdi + 0x54], r8w
movzx ecx, byte [rdx + 0x21]
movzx eax, byte [rdx + 0x20]
shl cx, 8
or cx, ax
mov word [rdi + 0x56], cx
movzx ecx, byte [rdx + 0x23]
movzx eax, byte [rdx + 0x22]
shl cx, 8
or cx, ax
mov word [rdi + 0x58], cx
test r8b, 4
je 0x180266bc5
movzx eax, byte [rdx + 0x24]
movzx ecx, byte [rdx + 0x25]
shl cx, 8
or cx, ax
mov eax, 0xea60
cmp cx, ax
ja 0x180266c20
movzx eax, byte [rdx + 0x26]
mov byte [rdi + 0x5c], al
movzx eax, byte [rdx + 0x27]
movzx ebx, cx
mov byte [rdi + 0x5d], al
add rbx, 0x28
jmp 0x180266bc9
mov byte [rdi + 0x5c], r14b
test r8b, 1
je 0x180266cd8
lea rdx, [rbx + 0x100]
xor r8d, r8d
mov rcx, rsi
call fcn.1802543e0
test rax, rax
je 0x1802670de
add rax, 2
mov rcx, r14
add rax, rbx
cmp byte [rax - 2], r14b
je 0x180266c44
cmp byte [rax - 1], r14b
je 0x180266c38
cmp byte [rax], r14b
je 0x180266c32
cmp byte [rax + 1], r14b
je 0x180266c2c
add rcx, 4
add rax, 4
cmp rcx, 0xff
jbe 0x180266bf8
lea r8, str.Invalid_CAB_header
jmp 0x1802670e5
add rcx, 3
jmp 0x180266c3b
add rcx, 2
jmp 0x180266c3b
inc rcx
cmp rcx, 0xff
ja 0x180266c20
test rcx, rcx
jle 0x180266c20
inc rcx
xor r8d, r8d
add rbx, rcx
mov rcx, rsi
lea rdx, [rbx + 0x100]
call fcn.1802543e0
test rax, rax
je 0x1802670de
add rax, 2
mov rcx, r14
add rax, rbx
cmp byte [rax - 2], r14b
je 0x180266cc4
cmp byte [rax - 1], r14b
je 0x180266cb4
cmp byte [rax], r14b
je 0x180266cae
cmp byte [rax + 1], r14b
je 0x180266ca8
add rcx, 4
add rax, 4
cmp rcx, 0xff
jbe 0x180266c74
lea r8, str.Invalid_CAB_header
jmp 0x1802670e5
add rcx, 3
jmp 0x180266cb7
add rcx, 2
jmp 0x180266cb7
inc rcx
cmp rcx, 0xff
ja 0x180266c20
test rcx, rcx
jle 0x180266c20
movzx r8d, word [rdi + 0x54]
inc rbx
add rbx, rcx
test r8b, 2
je 0x180266def
lea rdx, [rbx + 0x100]
xor r8d, r8d
mov rcx, rsi
call fcn.1802543e0
test rax, rax
je 0x1802670de
add rax, 2
mov rcx, r14
add rax, rbx
cmp byte [rax - 2], r14b
je 0x180266d57
cmp byte [rax - 1], r14b
je 0x180266d47
cmp byte [rax], r14b
je 0x180266d41
cmp byte [rax + 1], r14b
je 0x180266d3b
add rcx, 4
add rax, 4
cmp rcx, 0xff
jbe 0x180266d07
lea r8, str.Invalid_CAB_header
jmp 0x1802670e5
add rcx, 3
jmp 0x180266d4a
add rcx, 2
jmp 0x180266d4a
inc rcx
cmp rcx, 0xff
ja 0x180266c20
test rcx, rcx
jle 0x180266c20
inc rcx
xor r8d, r8d
add rbx, rcx
mov rcx, rsi
lea rdx, [rbx + 0x100]
call fcn.1802543e0
test rax, rax
je 0x1802670de
add rax, 2
mov rcx, r14
add rax, rbx
nop dword [rax + rax]
cmp byte [rax - 2], r14b
je 0x180266de0
cmp byte [rax - 1], r14b
je 0x180266dd0
cmp byte [rax], r14b
je 0x180266dca
cmp byte [rax + 1], r14b
je 0x180266dc4
add rcx, 4
add rax, 4
cmp rcx, 0xff
jbe 0x180266d90
lea r8, str.Invalid_CAB_header
jmp 0x1802670e5
add rcx, 3
jmp 0x180266dd3
add rcx, 2
jmp 0x180266dd3
inc rcx
cmp rcx, 0xff
ja 0x180266c20
test rcx, rcx
jle 0x180266c20
inc rbx
add rbx, rcx
mov rdx, rbx
mov rcx, rsi
call fcn.1802543f0
add qword [rdi + 0x40], rbx
mov edx, 0x60
movzx ecx, word [rdi + 0x50]
mov rbx, r14
call fcn.1802aacc0
mov qword [rdi + 0x60], rax
test rax, rax
je 0x1802672a8
test byte [rdi + 0x54], 4
mov edx, 8
je 0x180266e2f
movzx edx, byte [rdi + 0x5c]
add rdx, 8
movzx eax, word [rdi + 0x50]
xor r8d, r8d
imul rdx, rax
mov rcx, rsi
call fcn.1802543e0
mov r8, rax
test rax, rax
je 0x1802670de
mov r13d, r14d
mov r10d, r14d
cmp r14w, word [rdi + 0x50]
jae 0x180266f1d
mov r11, r14
lea r15, str.NONE
nop dword [rax]
movzx eax, byte [r8 + 2]
movzx edx, byte [r8 + 3]
mov r9, qword [rdi + 0x60]
shl edx, 8
add r9, r11
or edx, eax
movzx eax, byte [r8 + 1]
shl edx, 8
or edx, eax
movzx eax, byte [r8]
shl edx, 8
or edx, eax
mov dword [r9], edx
movzx eax, byte [r8 + 4]
movzx ecx, byte [r8 + 5]
shl cx, 8
or cx, ax
mov word [r9 + 4], cx
movzx eax, byte [r8 + 6]
and al, 0xf
movzx ecx, al
mov word [r9 + 6], cx
movzx eax, byte [r8 + 7]
mov word [r9 + 8], ax
cmp ecx, 4
jae 0x180266ed6
mov rcx, qword [r15 + rcx*8]
jmp 0x180266edd
lea rcx, str.UNKNOWN
add r8, 8
mov qword [r9 + 0x10], rcx
add rbx, 8
test byte [rdi + 0x54], 4
je 0x180266ef9
movzx eax, byte [rdi + 0x5c]
add r8, rax
add rbx, rax
cmp r13d, edx
jae 0x180266c20
mov byte [r9 + 0x5c], r14b
inc r10d
movzx eax, word [rdi + 0x50]
add r11, 0x60
mov r13d, edx
cmp r10d, eax
jl 0x180266e70
mov rdx, rbx
mov rcx, rsi
call fcn.1802543f0
add qword [rdi + 0x40], rbx
mov r9d, dword [rdi + 0x4c]
mov rax, qword [rdi + 0x40]
mov ebx, r9d
sub rbx, rax
jns 0x180266f5a
lea r8, str.Invalid_offset_of_CFFILE__jd____jd
mov qword [rsp + 0x20], rax
mov edx, 0xffffffff
mov rcx, rsi
call fcn.180253290
jmp 0x1802670f2
test rbx, rbx
je 0x180266f6e
mov rdx, rbx
mov rcx, rsi
call fcn.1802543f0
add qword [rdi + 0x40], rbx
movzx ecx, word [rdi + 0x52]
mov edx, 0x30
call fcn.1802aacc0
mov qword [rdi + 0x68], rax
test rax, rax
je 0x1802672a8
mov r12d, 0xffffffff
mov ebp, r14d
cmp r14w, word [rdi + 0x52]
jae 0x180267242
mov r15, r14
xor r8d, r8d
lea r14, [r15 + r15*2]
shl r14, 4
mov rcx, rsi
add r14, qword [rdi + 0x68]
lea edx, [r8 + 0x10]
call fcn.1802543e0
mov rbx, rax
test rax, rax
je 0x1802670de
movzx ecx, byte [rax + 2]
movzx edx, byte [rax + 3]
shl edx, 8
or edx, ecx
mov qword [rsp + 0x50], 0
movzx ecx, byte [rax + 1]
movzx eax, byte [rax]
shl edx, 8
or edx, ecx
mov dword [rsp + 0x58], 0xffffffff
shl edx, 8
or edx, eax
mov dword [r14], edx
movzx ecx, byte [rbx + 7]
movzx eax, byte [rbx + 6]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbx + 4]
shl ecx, 8
or ecx, eax
mov dword [r14 + 4], ecx
movzx ecx, byte [rbx + 9]
movzx eax, byte [rbx + 8]
shl cx, 8
or cx, ax
mov word [r14 + 0x10], cx
movzx ecx, byte [rbx + 0xb]
movzx eax, byte [rbx + 0xa]
movzx edx, byte [rbx + 0xd]
shl ecx, 8
or ecx, eax
shl edx, 8
movzx eax, byte [rbx + 0xc]
or edx, eax
mov eax, ecx
shr eax, 9
add eax, 0x50
mov dword [rsp + 0x4c], eax
mov eax, ecx
shr eax, 5
and ecx, 0x1f
and eax, 0xf
mov dword [rsp + 0x44], ecx
dec eax
lea rcx, [rsp + 0x38]
mov dword [rsp + 0x48], eax
mov eax, edx
shr eax, 0xb
mov dword [rsp + 0x40], eax
mov eax, edx
shr eax, 5
and edx, 0x1f
and eax, 0x3f
add edx, edx
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x38], edx
call fcn.1802ae014
mov qword [r14 + 8], rax
mov edx, 0x10
movzx eax, byte [rbx + 0xe]
mov rcx, rsi
mov byte [r14 + 0x12], al
call fcn.1802543f0
add qword [rdi + 0x40], 0x10
mov ebx, 0x100
nop word [rax + rax]
lea r8, [rsp + 0x30]
mov rdx, rbx
mov rcx, rsi
call fcn.1802543e0
mov rdx, rax
test rax, rax
jne 0x18026713f
sub rbx, 1
jne 0x1802670c0
lea r8, str.Truncated_CAB_header
mov edx, 0x2a
mov rcx, rsi
call fcn.180253290
mov eax, 0xffffffe2
mov r15, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
mov r13, qword [rsp + 0x80]
mov r12, qword [rsp + 0x88]
mov rdi, qword [rsp + 0xb8]
mov rbp, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.180296ce0
add rsp, 0x90
pop rsi
ret
mov rax, qword [rsp + 0x30]
dec rax
xor r8d, r8d
mov ebx, r8d
nop dword [rax]
cmp byte [rbx + rdx], r8b
je 0x18026716a
inc rbx
cmp rbx, rax
jbe 0x180267150
lea r8, str.Invalid_CAB_header
jmp 0x1802670e5
cmp rbx, rax
ja 0x180266c20
test rbx, rbx
jle 0x180266c20
lea rcx, [r14 + 0x18]
mov qword [r14 + 0x28], r8
mov qword [rcx], r8
mov qword [r14 + 0x20], r8
mov r8, rbx
call fcn.18025af30
lea rdx, [rbx + 1]
mov rcx, rsi
call fcn.1802543f0
lea rax, [rbx + 1]
add qword [rdi + 0x40], rax
mov r8d, dword [r14]
cmp r8d, 0x7fff8000
ja 0x180266c20
mov r9d, dword [r14 + 4]
lea rcx, [r9 + r8]
cmp rcx, 0x7fff8000
ja 0x180266c20
movzx ecx, word [r14 + 0x10]
mov edx, ecx
sub edx, 0xfffd
je 0x1802671fc
sub edx, 1
je 0x180267256
cmp edx, 1
je 0x1802671f1
cmp cx, word [rdi + 0x50]
jae 0x180266c20
jmp 0x18026726a
cmp word [rdi + 0x52], 1
jne 0x180266c20
test r15, r15
jne 0x180266c20
xor ecx, ecx
mov eax, r9d
xor r12d, r12d
lea r13d, [rax + r8]
test r8d, r8d
je 0x180267231
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x60]
shl rcx, 5
cmp word [rcx + rax + 4], 0
je 0x180266c20
movzx eax, word [rdi + 0x52]
inc ebp
inc r15
cmp ebp, eax
jl 0x180266fa0
cmp word [rdi + 0x58], 0
jne 0x18026728a
test byte [rdi + 0x54], 3
jne 0x18026728a
xor eax, eax
jmp 0x1802670f7
movzx eax, word [rdi + 0x52]
dec eax
cmp ebp, eax
jne 0x180266c20
movzx ecx, word [rdi + 0x50]
dec ecx
cmp ecx, r12d
jl 0x180266c20
xor eax, eax
cmp ecx, r12d
mov r12d, ecx
cmove eax, r13d
cmp eax, r9d
jne 0x180266c20
jmp 0x18026720d
lea r8, str.Multivolume_cabinet_file_is_unsupported
mov edx, 0x2a
mov rcx, rsi
call fcn.180253290
mov eax, 0xffffffec
jmp 0x1802670f7
lea r8, str.Cant_allocate_memory_for_CAB_data
mov edx, 0xc
jmp 0x1802670ea