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

Disassembly:
push rsi
sub rsp, 0x90
mov rax, qword [0x180e681c0]
xor rax, rsp
mov qword [rsp + 0x60], rax
cmp qword [rcx + 0x18], 0
mov rsi, rcx
mov dword [rcx + 0x10], 0xc0000
jne 0x1801f1304
lea rax, [0x1803649e0]
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.1801dd7c0
mov rdx, rax
test rax, rax
je 0x1801f19ce
mov rcx, qword [rsi + 0x818]
mov rdi, qword [rcx]
cmp byte [rdi + 0x90], 0
jne 0x1801f145a
cmp byte [rax], 0x4d
jne 0x1801f145a
cmp byte [rax + 1], 0x5a
jne 0x1801f145a
mov ebx, 0x1000
mov ebp, 5
nop dword [rax]
nop word [rax + rax]
movsxd rdx, ebx
lea r8, [rsp + 0x30]
mov rcx, rsi
call fcn.1801dd7c0
mov r9, rax
test rax, rax
jne 0x1801f13be
sar ebx, 1
cmp ebx, 0x80
jge 0x1801f1390
lea r8, str.Couldnt_find_out_CAB_header
jmp 0x1801f19d5
movsxd r8, dword [rsp + 0x30]
add rax, 8
add r8, r9
mov rdx, r9
cmp rax, r8
jae 0x1801f1424
movzx ecx, byte [rdx + 4]
test cl, cl
je 0x1801f140c
cmp cl, 0x43
je 0x1801f1405
cmp cl, 0x46
je 0x1801f13fe
cmp cl, 0x4d
je 0x1801f13f7
cmp cl, 0x53
mov eax, 3
cmovne rax, rbp
jmp 0x1801f1418
mov eax, 4
jmp 0x1801f1418
mov eax, 1
jmp 0x1801f1418
mov eax, 2
jmp 0x1801f1418
cmp qword [rdx], 0x4643534d
je 0x1801f1434
mov rax, rbp
add rdx, rax
lea rax, [rdx + 8]
cmp rax, r8
jb 0x1801f13d2
sub rdx, r9
mov rcx, rsi
call fcn.1801dd7d0
jmp 0x1801f1390
sub rdx, r9
mov rcx, rsi
call fcn.1801dd7d0
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0x2a]
call fcn.1801dd7c0
mov rdx, rax
test rax, rax
je 0x1801f19ce
xor r14d, r14d
mov qword [rdi + 0x40], r14
cmp byte [rdx], 0x4d
jne 0x1801f13b2
cmp byte [rdx + 1], 0x53
jne 0x1801f13b2
cmp byte [rdx + 2], 0x43
jne 0x1801f13b2
cmp byte [rdx + 3], 0x46
jne 0x1801f13b2
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 0x1801f15c4
movzx ecx, byte [rdx + 0x1d]
movzx eax, byte [rdx + 0x1c]
shl cx, 8
or cx, ax
mov word [rdi + 0x52], cx
je 0x1801f15c4
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 0x1801f1583
movzx eax, byte [rdx + 0x24]
movzx ecx, byte [rdx + 0x25]
shl cx, 8
or cx, ax
mov eax, 0xea60
cmp cx, ax
ja 0x1801f15c4
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 0x1801f1587
mov byte [rdi + 0x5c], r14b
test r8b, 1
je 0x1801f1630
lea rdx, [rbx + 0x100]
xor r8d, r8d
mov rcx, rsi
call fcn.1801dd7c0
test rax, rax
je 0x1801f19ce
mov rcx, r14
add rax, rbx
cmp byte [rax + rcx], r14b
je 0x1801f15d0
inc rcx
cmp rcx, 0xff
jbe 0x1801f15b2
lea r8, str.Invalid_CAB_header
jmp 0x1801f19d5
test ecx, ecx
jle 0x1801f15c4
movsxd rax, ecx
xor r8d, r8d
inc rax
mov rcx, rsi
add rbx, rax
lea rdx, [rbx + 0x100]
call fcn.1801dd7c0
test rax, rax
je 0x1801f19ce
mov rcx, r14
add rax, rbx
nop
cmp byte [rax + rcx], r14b
je 0x1801f161e
inc rcx
cmp rcx, 0xff
jbe 0x1801f1600
lea r8, str.Invalid_CAB_header
jmp 0x1801f19d5
test ecx, ecx
jle 0x1801f15c4
movzx r8d, word [rdi + 0x54]
lea eax, [rcx + 1]
movsxd rcx, eax
add rbx, rcx
test r8b, 2
je 0x1801f16df
lea rdx, [rbx + 0x100]
xor r8d, r8d
mov rcx, rsi
call fcn.1801dd7c0
test rax, rax
je 0x1801f19ce
mov rcx, r14
add rax, rbx
nop dword [rax + rax]
cmp byte [rax + rcx], r14b
je 0x1801f167e
inc rcx
cmp rcx, 0xff
jbe 0x1801f1660
lea r8, str.Invalid_CAB_header
jmp 0x1801f19d5
test ecx, ecx
jle 0x1801f15c4
movsxd rax, ecx
xor r8d, r8d
inc rax
mov rcx, rsi
add rbx, rax
lea rdx, [rbx + 0x100]
call fcn.1801dd7c0
test rax, rax
je 0x1801f19ce
mov rcx, r14
add rax, rbx
cmp byte [rax + rcx], r14b
je 0x1801f16ce
inc rcx
cmp rcx, 0xff
jbe 0x1801f16b0
lea r8, str.Invalid_CAB_header
jmp 0x1801f19d5
test ecx, ecx
jle 0x1801f15c4
lea eax, [rcx + 1]
movsxd rcx, eax
add rbx, rcx
mov rdx, rbx
mov rcx, rsi
call fcn.1801dd7d0
add qword [rdi + 0x40], rbx
mov edx, 0x60
movzx ecx, word [rdi + 0x50]
mov rbx, r14
call fcn.180252bb0
mov qword [rdi + 0x60], rax
test rax, rax
je 0x1801f1b97
test byte [rdi + 0x54], 4
mov edx, 8
je 0x1801f171f
movzx edx, byte [rdi + 0x5c]
add rdx, 8
movzx eax, word [rdi + 0x50]
xor r8d, r8d
imul rdx, rax
mov rcx, rsi
call fcn.1801dd7c0
mov r8, rax
test rax, rax
je 0x1801f19ce
mov r13d, r14d
mov r10d, r14d
cmp r14w, word [rdi + 0x50]
jae 0x1801f180d
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 0x1801f17c6
mov rcx, qword [r15 + rcx*8]
jmp 0x1801f17cd
lea rcx, str.UNKNOWN
add r8, 8
mov qword [r9 + 0x10], rcx
add rbx, 8
test byte [rdi + 0x54], 4
je 0x1801f17e9
movzx eax, byte [rdi + 0x5c]
add r8, rax
add rbx, rax
cmp r13d, edx
jae 0x1801f15c4
mov byte [r9 + 0x5c], r14b
inc r10d
movzx eax, word [rdi + 0x50]
add r11, 0x60
mov r13d, edx
cmp r10d, eax
jl 0x1801f1760
mov rdx, rbx
mov rcx, rsi
call fcn.1801dd7d0
add qword [rdi + 0x40], rbx
mov r9d, dword [rdi + 0x4c]
mov rax, qword [rdi + 0x40]
mov ebx, r9d
sub rbx, rax
jns 0x1801f184a
lea r8, str.Invalid_offset_of_CFFILE__jd____jd
mov qword [rsp + 0x20], rax
mov edx, 0xffffffff
mov rcx, rsi
call fcn.1801e5fd0
jmp 0x1801f19e2
test rbx, rbx
je 0x1801f185e
mov rdx, rbx
mov rcx, rsi
call fcn.1801dd7d0
add qword [rdi + 0x40], rbx
movzx ecx, word [rdi + 0x52]
mov edx, 0x30
call fcn.180252bb0
mov qword [rdi + 0x68], rax
test rax, rax
je 0x1801f1b97
mov r12d, 0xffffffff
mov ebp, r14d
cmp r14w, word [rdi + 0x52]
jae 0x1801f1b31
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.1801dd7c0
mov rbx, rax
test rax, rax
je 0x1801f19ce
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.180268190
mov qword [r14 + 8], rax
mov edx, 0x10
movzx eax, byte [rbx + 0xe]
mov rcx, rsi
mov byte [r14 + 0x12], al
call fcn.1801dd7d0
add qword [rdi + 0x40], 0x10
mov ebx, 0x100
nop word [rax + rax]
lea r8, [rsp + 0x30]
mov rdx, rbx
mov rcx, rsi
call fcn.1801dd7c0
mov rdx, rax
test rax, rax
jne 0x1801f1a2f
sub rbx, 1
jne 0x1801f19b0
lea r8, str.Truncated_CAB_header
mov edx, 0x2a
mov rcx, rsi
call fcn.1801e5fd0
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.18024b290
add rsp, 0x90
pop rsi
ret
mov eax, dword [rsp + 0x30]
dec eax
movsxd rcx, eax
xor eax, eax
mov ebx, eax
nop dword [rax]
cmp byte [rbx + rdx], al
je 0x1801f1a59
inc rbx
cmp rbx, rcx
jbe 0x1801f1a40
lea r8, str.Invalid_CAB_header
jmp 0x1801f19d5
cmp rbx, rcx
ja 0x1801f15c4
test ebx, ebx
jle 0x1801f15c4
lea rcx, [r14 + 0x18]
movsxd r8, ebx
mov qword [rcx], rax
mov qword [r14 + 0x28], rax
mov qword [r14 + 0x20], rax
call fcn.1801e2770
lea eax, [rbx + 1]
mov rcx, rsi
movsxd rbx, eax
mov rdx, rbx
call fcn.1801dd7d0
add qword [rdi + 0x40], rbx
mov r8d, dword [r14]
cmp r8d, 0x7fff8000
ja 0x1801f15c4
mov r9d, dword [r14 + 4]
lea rcx, [r9 + r8]
cmp rcx, 0x7fff8000
ja 0x1801f15c4
movzx ecx, word [r14 + 0x10]
mov edx, ecx
sub edx, 0xfffd
je 0x1801f1aeb
sub edx, 1
je 0x1801f1b45
cmp edx, 1
je 0x1801f1ae0
cmp cx, word [rdi + 0x50]
jae 0x1801f15c4
jmp 0x1801f1b59
cmp word [rdi + 0x52], 1
jne 0x1801f15c4
test r15, r15
jne 0x1801f15c4
xor ecx, ecx
mov eax, r9d
xor r12d, r12d
lea r13d, [r8 + rax]
test r8d, r8d
je 0x1801f1b20
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x60]
shl rcx, 5
cmp word [rcx + rax + 4], 0
je 0x1801f15c4
movzx eax, word [rdi + 0x52]
inc ebp
inc r15
cmp ebp, eax
jl 0x1801f1890
cmp word [rdi + 0x58], 0
jne 0x1801f1b79
test byte [rdi + 0x54], 3
jne 0x1801f1b79
xor eax, eax
jmp 0x1801f19e7
movzx eax, word [rdi + 0x52]
dec eax
cmp ebp, eax
jne 0x1801f15c4
movzx ecx, word [rdi + 0x50]
dec ecx
cmp ecx, r12d
jl 0x1801f15c4
xor eax, eax
cmp ecx, r12d
mov r12d, ecx
cmove eax, r13d
cmp eax, r9d
jne 0x1801f15c4
jmp 0x1801f1afc
lea r8, str.Multivolume_cabinet_file_is_unsupported
mov edx, 0x2a
mov rcx, rsi
call fcn.1801e5fd0
mov eax, 0xffffffec
jmp 0x1801f19e7
lea r8, str.Cant_allocate_memory_for_CAB_data
mov edx, 0xc
jmp 0x1801f19da