Function at 0x140066cd0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
push r12
push r13
sub rsp, 0x28
movzx eax, word [rcx + 0x5d1e0]
mov rbx, rcx
mov rcx, qword [rcx + 0x5d158]
xor r8d, r8d
mov word [rsp + 0x58], ax
xor r12d, r12d
movsxd rdi, edx
xor r13d, r13d
mov rdx, rdi
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rcx, qword [rbx + 0x5d158]
mov rax, qword [rcx]
call qword [rax + 0x30]
test eax, eax
jne 0x14006724d
mov rcx, qword [rbx + 0x5d158]
mov rax, qword [rcx]
call qword [rax + 0x30]
cmp eax, 0x4d
jne 0x14006724d
mov rcx, qword [rbx + 0x5d158]
mov rax, qword [rcx]
call qword [rax + 0x30]
cmp eax, 0x52
jne 0x14006724d
mov rcx, qword [rbx + 0x5d158]
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x20], r15
mov rax, qword [rcx]
call qword [rax + 0x30]
mov ecx, 0x101
movsx edx, ax
movsx ecx, cx
imul edx, ecx
mov rcx, rbx
mov word [rbx + 0x5d1e0], dx
call sym.EURawImg.exe_protected:_unsigned_int___cdecl_LibRaw::get4_void____ptr64
mov rcx, qword [rbx + 0x5d158]
add edi, 8
add edi, eax
mov rax, qword [rcx]
call qword [rax + 0x28]
movsxd rdx, edi
mov r15, rax
lea rcx, [rax - 8]
cmp rdx, rcx
jle 0x140066da4
lea edi, [rax - 8]
mov rcx, qword [rbx + 0x5d158]
mov qword [rsp + 0x60], rsi
mov rdx, qword [rcx]
call qword [rdx + 0x20]
movsxd r14, edi
mov rbp, rax
cmp rax, r14
jge 0x140067223
nop word [rax + rax]
xor edi, edi
lea esi, [rdi + 4]
nop word [rax + rax]
mov rcx, qword [rbx + 0x5d158]
mov rax, qword [rcx]
call qword [rax + 0x30]
shl edi, 8
or edi, eax
sub rsi, 1
jne 0x140066de0
mov rcx, rbx
call sym.EURawImg.exe_protected:_unsigned_int___cdecl_LibRaw::get4_void____ptr64
test eax, eax
js 0x140067239
cdqe
add rax, 8
add rbp, rax
cmp rbp, r15
jg 0x140067239
cmp edi, 0x505244
je 0x140067145
cmp edi, 0x524946
je 0x140066eec
cmp edi, 0x545457
je 0x140066ec8
cmp edi, 0x574247
jne 0x1400671f7
mov rcx, rbx
call sym.EURawImg.exe_protected:_unsigned_int___cdecl_LibRaw::get4_void____ptr64
xor edi, edi
lea esi, [rdi + 4]
cmp word [rbx + 0xddc], si
jne 0x140066e96
mov rcx, rbx
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
movd xmm0, eax
mov rax, rdi
xor rax, 6
sar rax, 1
xor rax, rdi
inc rdi
cvtdq2ps xmm0, xmm0
movss dword [rbx + rax*4 + 0x255d4], xmm0
sub rsi, 1
jne 0x140066e60
jmp 0x1400671f7
mov rcx, rbx
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
movd xmm0, eax
mov rax, rdi
sar rax, 1
xor rax, rdi
inc rdi
cvtdq2ps xmm0, xmm0
movss dword [rbx + rax*4 + 0x255d4], xmm0
sub rsi, 1
jne 0x140066e96
jmp 0x1400671f7
mov rcx, qword [rbx + 0x5d158]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rdx, rax
mov rcx, rbx
call sym.EURawImg.exe_protected:_int___cdecl_LibRaw::parse_tiff_int____ptr64
mov qword [rbx + 0x5d200], r14
jmp 0x1400671f7
mov rcx, qword [rbx + 0x5d158]
mov edx, 8
mov rax, qword [rcx]
lea r8d, [rdx - 7]
call qword [rax + 0x18]
mov rcx, rbx
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2da84], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2da8c], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2da64], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2da6c], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2daf4], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2dafc], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2db34], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2db3c], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2da94], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2da9c], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2df84], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
lea rcx, [rbx + 0x10c]
mov r8d, 9
mov dword [rbx + 0x2df8c], eax
lea rdx, [0x140091530]
mov dword [rbx + 0x2df90], 0x100
mov dword [rbx + 0x2df88], 0x100
mov dword [rbx + 0x2daa0], 0x100
mov dword [rbx + 0x2da98], 0x100
mov dword [rbx + 0x2db40], 0x100
mov dword [rbx + 0x2db38], 0x100
mov dword [rbx + 0x2db00], 0x100
mov dword [rbx + 0x2daf8], 0x100
mov dword [rbx + 0x2da70], 0x100
mov dword [rbx + 0x2da68], 0x100
mov dword [rbx + 0x2da90], 0x100
mov dword [rbx + 0x2da88], 0x100
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
test eax, eax
jne 0x1400671f7
mov rcx, rbx
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2db04], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2db0c], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2db14], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2db1c], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2db24], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2db2c], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov rcx, rbx
mov dword [rbx + 0x2db44], eax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
movzx eax, ax
mov dword [rbx + 0x2db4c], eax
mov dword [rbx + 0x2db50], 0x100
mov dword [rbx + 0x2db48], 0x100
mov dword [rbx + 0x2db30], 0x100
mov dword [rbx + 0x2db28], 0x100
mov dword [rbx + 0x2db20], 0x100
mov dword [rbx + 0x2db18], 0x100
mov dword [rbx + 0x2db10], 0x100
mov dword [rbx + 0x2db08], 0x100
jmp 0x1400671f7
mov rcx, qword [rbx + 0x5d158]
mov edx, 8
mov rax, qword [rcx]
lea r8d, [rdx - 7]
call qword [rax + 0x18]
mov rcx, rbx
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
mov rcx, rbx
movzx r12d, ax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
mov rcx, rbx
movzx r13d, ax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
mov rcx, rbx
mov word [rbx + 0xdd2], ax
call sym.EURawImg.exe_protected:_unsigned_short_int___cdecl_LibRaw::get2_void____ptr64
mov rcx, qword [rbx + 0x5d158]
mov word [rbx + 0xdd4], ax
mov rax, qword [rcx]
call qword [rax + 0x30]
mov rcx, qword [rbx + 0x5d158]
mov word [rbx + 0xdd6], ax
mov rax, qword [rcx]
call qword [rax + 0x30]
mov rcx, qword [rbx + 0x5d158]
mov word [rbx + 0xdd8], ax
mov rax, qword [rcx]
call qword [rax + 0x30]
mov rcx, qword [rbx + 0x5d158]
mov edx, 4
mov word [rbx + 0xdda], ax
mov rax, qword [rcx]
lea r8d, [rdx - 3]
call qword [rax + 0x18]
mov rcx, qword [rbx + 0x5d158]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov word [rbx + 0xddc], ax
mov rcx, qword [rbx + 0x5d158]
xor r8d, r8d
mov rdx, rbp
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rcx, qword [rbx + 0x5d158]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rbp, rax
cmp rax, r14
jl 0x140066dd0
movzx eax, word [rsp + 0x58]
mov word [rbx + 0x5d1e0], ax
mov word [rbx + 0x10], r12w
mov word [rbx + 0x12], r13w
mov rsi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x50]
mov r15, qword [rsp + 0x20]
add rsp, 0x28
pop r13
pop r12
pop rdi
pop rbx
ret