Function at 0x18026f570
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 rbx, qword [rcx + 0x9a8]
xor esi, esi
mov r12, r8
mov r13, rdx
mov r14, rcx
mov rbx, qword [rbx]
cmp byte [rbx + 0x123], sil
jne 0x18026f721
mov rdi, qword [rbx + 0x198]
lea rbp, [rbx + 0x29]
test rdi, rdi
jne 0x18026f5e2
mov edx, 0x158
lea ecx, [rsi + 1]
call fcn.1802aacc0
mov qword [rbx + 0x198], rax
mov rdi, rax
test rax, rax
je 0x18026f773
mov r9, qword [rsp + 0x88]
mov dword [rdi + 0x154], 0xffffffe7
test rbp, rbp
je 0x18026f79b
cmp byte [rbp], 0x6c
jne 0x18026f79b
cmp byte [rbp + 1], 0x68
jne 0x18026f79b
movsx ecx, byte [rbp + 2]
sub ecx, 0x35
je 0x18026f62c
sub ecx, 1
je 0x18026f625
cmp ecx, 1
jne 0x18026f79b
lea ebp, [rcx + 0xf]
jmp 0x18026f631
mov ebp, 0xf
jmp 0x18026f631
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 0x18026f671
mov ecx, r9d
call fcn.1802a4320
mov qword [rdi + 0x10], rax
mov rdx, rax
test rax, rax
je 0x18026f773
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.1802991c0
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.1802715e0
test eax, eax
jne 0x18026f773
lea rcx, [rdi + 0xb8]
mov dword [rdi + 0x40], 9
lea edx, [rax + 0x13]
lea r8d, [rax + 0x10]
call fcn.1802715e0
test eax, eax
jne 0x18026f773
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.1802543e0
mov qword [rdi], rax
mov rax, qword [rsp + 0x70]
test rax, rax
jg 0x18026f7eb
lea r8, str.Truncated_LHa_file_body
mov edx, 0x2a
mov rcx, r14
call fcn.180253290
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.180253290
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.180253290
mov rcx, r14
call fcn.18026e820
mov eax, 0xffffffec
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [rbx + 8]
mov qword [rsp + 0x80], r15
cmp rax, rcx
jle 0x18026f808
mov rax, rcx
mov qword [rsp + 0x70], rcx
mov rcx, 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], eax
cmp qword [rsp + 0x70], rcx
mov edx, dword [r15 + 0x154]
sete bpl
test edx, edx
jne 0x18026f86e
mov r13d, dword [rdi + 8]
nop dword [rax]
cmp dword [r15], 9
mov edx, ebp
mov rcx, rdi
jge 0x18026f852
call fcn.180271ad0
jmp 0x18026f857
call fcn.180270f40
mov edx, eax
cmp eax, 0x64
je 0x18026f840
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 0x18026f8ae
cmp edx, 1
je 0x18026f8a7
lea r8, str.Bad_lzh_data
mov edx, 0xffffffff
mov rcx, r14
call fcn.180253290
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 0x18026fa36
movsxd rax, dword [rbx + 0x188]
mov qword [r12], rax
mov r9, qword [rbx + 0x180]
mov qword [r13], r9
mov r10, qword [r12]
movzx r8d, word [rbx + 0x18]
test r10, r10
je 0x18026fa19
lea rdi, [0x180402c10]
test r9b, 1
je 0x18026f92f
movzx ecx, byte [r9]
movzx eax, r8w
xor rcx, r8
shr ax, 8
movzx edx, cl
inc r9
movzx r8d, word [rdi + rdx*2]
xor r8w, ax
dec r10
cmp r10, 8
jb 0x18026f9e8
mov r11, r10
shr r11, 3
imul rax, r11, 0xfffffffffffffff8
add r10, rax
nop word [rax + rax]
movzx ecx, word [r9]
movzx eax, r8w
xor rcx, rax
mov rax, rcx
shr rax, 8
movzx edx, word [rdi + rax*2]
movzx eax, cl
lea rcx, [r9 + 6]
movzx eax, word [rdi + rax*2 + 0x200]
xor rdx, rax
movzx eax, word [r9 + 2]
xor rdx, rax
mov rax, rdx
shr rax, 8
movzx r8d, word [rdi + rax*2]
movzx eax, dl
movzx eax, word [rdi + rax*2 + 0x200]
xor r8, rax
movzx eax, word [r9 + 4]
xor r8, rax
lea r9, [rcx + 2]
mov rax, r8
shr rax, 8
movzx edx, word [rdi + rax*2]
movzx eax, r8b
movzx eax, word [rdi + rax*2 + 0x200]
xor rdx, rax
movzx eax, word [rcx]
xor rdx, rax
mov rcx, rdx
movzx eax, dl
shr rcx, 8
movzx r8d, word [rdi + rcx*2]
xor r8w, word [rdi + rax*2 + 0x200]
sub r11, 1
jne 0x18026f950
test r10, r10
je 0x18026fa19
nop dword [rax]
movzx ecx, byte [r9]
lea r9, [r9 + 1]
movzx eax, r8w
xor rcx, rax
movzx eax, r8w
shr ax, 8
movzx edx, cl
movzx r8d, word [rdi + rdx*2]
xor r8w, ax
sub r10, 1
jne 0x18026f9f0
mov word [rbx + 0x18], r8w
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 0x18026fa25
mov rcx, r14
call fcn.18026f510
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret