Function at 0x1801f9ef0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x30
mov rax, qword [rcx + 0x818]
xor esi, esi
mov r12, r8
mov r13, rdx
mov r14, rcx
mov rbx, qword [rax]
cmp byte [rbx + 0x123], sil
jne 0x1801fa0a1
mov rdi, qword [rbx + 0x198]
lea rbp, [rbx + 0x29]
test rdi, rdi
jne 0x1801f9f62
mov edx, pe_nt_image_headers64
lea ecx, [rsi + 1]
call fcn.180252bb0
mov qword [rbx + 0x198], rax
mov rdi, rax
test rax, rax
je 0x1801fa0f2
mov r9, qword [rsp + 0x88]
mov dword [rdi + 0x154], 0xffffffe7
test rbp, rbp
je 0x1801fa11a
cmp byte [rbp], 0x6c
jne 0x1801fa11a
cmp byte [rbp + 1], 0x68
jne 0x1801fa11a
movsx ecx, byte [rbp + 2]
sub ecx, 0x35
je 0x1801f9fac
sub ecx, 1
je 0x1801f9fa5
cmp ecx, 1
jne 0x1801fa11a
lea ebp, [rcx + 0xf]
jmp 0x1801f9fb1
mov ebp, 0xf
jmp 0x1801f9fb1
mov ebp, 0xd
mov rdx, qword [rdi + 0x10]
mov r9d, 0x20000
mov dword [rdi + 0x154], 0xffffffe2
mov dword [rdi + 4], r9d
mov dword [rdi + 8], 0x1ffff
test rdx, rdx
jne 0x1801f9ff1
mov ecx, r9d
call fcn.1802618e0
mov qword [rdi + 0x10], rax
mov rdx, rax
test rax, rax
je 0x1801fa0f2
mov r9d, dword [rdi + 4]
mov ecx, ebp
mov eax, 1
shl eax, cl
movsxd r8, eax
movsxd rcx, r9d
sub rcx, r8
add rcx, rdx
mov edx, 0x20
call fcn.180281510
lea eax, [rbp + 1]
mov dword [rdi + 0x18], esi
mov ecx, esi
mov dword [rdi + 0x13c], eax
lea eax, [rbp - 0xf]
mov dword [rdi], esi
cmp eax, 1
mov dword [rdi + 0x144], 0x13
mov edx, 0x1fe
mov dword [rdi + 0x148], 5
setbe cl
mov qword [rdi + 0x28], rsi
add ecx, 4
mov dword [rdi + 0x30], esi
mov dword [rdi + 0x140], ecx
mov r8d, 0x10
lea rcx, [rdi + 0x38]
call fcn.1801fbf50
test eax, eax
jne 0x1801fa0f2
lea rcx, [rdi + 0xb8]
mov dword [rdi + 0x40], 9
lea edx, [rax + 0x13]
lea r8d, [rax + 0x10]
call fcn.1801fbf50
test eax, eax
jne 0x1801fa0f2
mov dword [rdi + 0x154], esi
mov byte [rbx + 0x123], 1
mov dword [rbx + 0x188], esi
mov qword [rbx + 0x190], rsi
lea r8, [rsp + 0x70]
mov edx, 1
mov rcx, r14
lea rdi, [rbx + 0x168]
call fcn.1801dd7c0
mov qword [rdi], rax
movsxd rcx, dword [rsp + 0x70]
test ecx, ecx
jg 0x1801fa16a
lea r8, str.Truncated_LHa_file_body
mov edx, 0x2a
mov rcx, r14
call fcn.1801e5fd0
mov eax, 0xffffffe2
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea r8, str.Couldnt_allocate_memory_for_lzh_decompression
mov edx, 0xc
mov rcx, r14
call fcn.1801e5fd0
mov eax, 0xffffffe2
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov qword [r13], rsi
lea r8, str.Unsupported_lzh_compression_method___c_c_c_
mov qword [r12], rsi
mov edx, 0x2a
mov qword [r9], rsi
movsx ecx, byte [rbx + 0x2a]
movsx eax, byte [rbx + 0x2b]
movsx r9d, byte [rbp]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
mov rcx, r14
call fcn.1801e5fd0
mov rcx, r14
call fcn.1801f91c0
mov eax, 0xffffffec
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rdx, qword [rbx + 8]
mov qword [rsp + 0x80], r15
cmp rcx, rdx
jle 0x1801fa185
mov ecx, edx
mov dword [rsp + 0x70], edx
mov rdx, qword [rbx + 8]
mov qword [rbx + 0x178], rsi
mov ebp, esi
mov dword [rbx + 0x188], esi
mov r15, qword [rdi + 0x30]
mov dword [rbx + 0x170], ecx
movsxd rax, dword [rsp + 0x70]
cmp rax, rdx
mov edx, dword [r15 + 0x154]
sete bpl
test edx, edx
jne 0x1801fa1ee
mov r13d, dword [rdi + 8]
nop dword [rax]
cmp dword [r15], 9
mov edx, ebp
mov rcx, rdi
jge 0x1801fa1d2
call fcn.1801fc440
jmp 0x1801fa1d7
call fcn.1801fb8b0
mov edx, eax
cmp eax, 0x64
je 0x1801fa1c0
sub r13d, dword [rdi + 8]
movsxd rax, r13d
add qword [rdi + 0x10], rax
mov r13, qword [rsp + 0x78]
mov r15, qword [rsp + 0x80]
test edx, edx
je 0x1801fa22e
cmp edx, 1
je 0x1801fa227
lea r8, str.Bad_lzh_data
mov edx, 0xffffffff
mov rcx, r14
call fcn.1801e5fd0
mov eax, 0xffffffe7
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov byte [rbx + 0x124], 1
mov rax, qword [rbx + 0x178]
sub qword [rbx + 8], rax
mov ecx, dword [rbx + 0x188]
mov rdx, qword [rsp + 0x88]
mov qword [rbx + 0x10], rax
mov rax, qword [rbx]
mov qword [rdx], rax
test ecx, ecx
je 0x1801fa39b
movsxd rax, dword [rbx + 0x188]
mov qword [r12], rax
mov r9, qword [rbx + 0x180]
mov qword [r13], r9
mov r10, qword [r12]
movzx eax, word [rbx + 0x18]
test r10, r10
je 0x1801fa37f
lea rdi, [0x180e7b920]
test r9b, 1
je 0x1801fa2a5
movzx edx, byte [r9]
inc r9
xor rdx, rax
shr ax, 8
movzx ecx, dl
xor ax, word [rdi + rcx*2]
dec r10
cmp r10, 8
jb 0x1801fa355
mov r11, r10
shr r11, 3
imul rcx, r11, 0xfffffffffffffff8
add r10, rcx
nop dword [rax]
movzx edx, word [r9]
movzx ecx, ax
xor rdx, rcx
mov rax, rdx
shr rax, 8
movzx ecx, word [rdi + rax*2]
movzx eax, dl
lea rdx, [r9 + 6]
movzx eax, word [rdi + rax*2 + 0x200]
xor rcx, rax
movzx eax, word [r9 + 2]
xor rcx, rax
mov rax, rcx
shr rax, 8
movzx r8d, word [rdi + rax*2]
movzx eax, cl
movzx eax, word [rdi + rax*2 + 0x200]
xor r8, rax
movzx eax, word [r9 + 4]
xor r8, rax
lea r9, [rdx + 2]
mov rax, r8
shr rax, 8
movzx ecx, word [rdi + rax*2]
movzx eax, r8b
movzx eax, word [rdi + rax*2 + 0x200]
xor rcx, rax
movzx eax, word [rdx]
xor rcx, rax
mov rax, rcx
movzx ecx, cl
shr rax, 8
movzx eax, word [rdi + rax*2]
xor ax, word [rdi + rcx*2 + 0x200]
sub r11, 1
jne 0x1801fa2c0
test r10, r10
je 0x1801fa37f
nop word [rax + rax]
movzx edx, byte [r9]
lea r9, [r9 + 1]
movzx ecx, ax
xor rdx, rcx
shr ax, 8
movzx ecx, dl
xor ax, word [rdi + rcx*2]
sub r10, 1
jne 0x1801fa360
mov word [rbx + 0x18], ax
mov rax, qword [r12]
add qword [rbx], rax
xor eax, eax
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov qword [r12], rsi
mov qword [r13], rsi
cmp byte [rbx + 0x124], sil
je 0x1801fa38a
mov rcx, r14
call fcn.1801f9e90
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret