Function at 0x180078710
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
push r13
sub rsp, 0x70
mov rdi, rdx
mov rdx, qword [rcx + 8]
mov rbx, rcx
lea rcx, [rsp + 0x20]
call fcn.18005ba90
mov rax, qword [rbx]
mov r13, qword [rax]
movsxd rax, dword [rax + 0x10]
shl rax, 4
mov qword [rsp + 0xa0], r13
add rax, r13
mov qword [rsp + 0xa8], rax
cmp r13, rax
je 0x180079324
mov r9d, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x28]
mov ebx, dword [rsp + 0x20]
mov qword [rsp + 0x98], rbp
mov ebp, dword [rsp + 0x2c]
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], r15
mov r15d, dword [rsp + 0x34]
nop word [rax + rax]
mov ecx, dword [r13]
mov edx, dword [r13 + 8]
mov esi, dword [r13 + 4]
mov r13d, dword [r13 + 0xc]
add edx, ecx
add r13d, esi
mov dword [rsp + 0x90], r13d
cmp dword [rsp + 0x38], esi
jle 0x1800792e6
cmp r9d, r13d
jge 0x1800792e6
cmp dword [rsp + 0x3c], ecx
jle 0x1800792e6
cmp r15d, edx
jge 0x1800792e6
mov r11d, dword [rsp + 0x4c]
mov r10d, dword [rsp + 0x44]
mov eax, r8d
sub eax, ebx
cmp eax, 1
jne 0x180078b0a
lea eax, [r11 + r10]
test eax, eax
jne 0x180078b0a
mov r11d, dword [rsp + 0x40]
test r11d, r11d
je 0x180078900
cmp r9d, esi
jl 0x180078900
mov r8, qword [rdi]
mov ecx, 0x100
mov eax, dword [r8 + 0xc]
imul eax, r9d
movsxd rdx, eax
add rdx, qword [r8]
mov qword [rdi + 8], rdx
mov eax, dword [r8 + 0x10]
imul eax, ebx
movsxd r10, eax
add r10, rdx
mov edx, dword [rdi + 0x10]
mov r9d, edx
and edx, 0xff00ff
shr r9d, 8
and r9d, 0xff00ff
imul edx, r11d
shr edx, 8
and edx, 0xff00ff
imul r9d, r11d
shr r9d, 8
and r9d, 0xff00ff
mov eax, r9d
shr eax, 0x10
sub ecx, eax
mov eax, dword [r10]
mov r8d, eax
shr eax, 8
and eax, 0xff00ff
and r8d, 0xff00ff
imul eax, ecx
imul r8d, ecx
mov ecx, 0x100
shr eax, 8
shr r8d, 8
and eax, 0xff00ff
and r8d, 0xff00ff
add r9d, eax
add r8d, edx
mov edx, 0x100
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r9d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r8d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r9d
shl r9d, 8
or ecx, r8d
shr eax, 8
xor edx, ecx
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r9d
xor edx, ecx
mov dword [r10], edx
cmp r13d, ebp
mov r11d, ebp
cmovl r11d, r13d
cmp esi, dword [rsp + 0x24]
cmovl esi, dword [rsp + 0x24]
cmp esi, r11d
jge 0x180078a00
nop dword [rax]
mov r8, qword [rdi]
mov ecx, 0x100
mov eax, dword [r8 + 0xc]
imul eax, esi
inc esi
movsxd rdx, eax
add rdx, qword [r8]
mov qword [rdi + 8], rdx
mov eax, dword [r8 + 0x10]
imul eax, ebx
movsxd r10, eax
add r10, rdx
mov edx, dword [rdi + 0x10]
mov r9d, edx
and edx, 0xff00ff
shr r9d, 8
and r9d, 0xff00ff
mov eax, r9d
shr eax, 0x10
sub ecx, eax
mov eax, dword [r10]
mov r8d, eax
shr eax, 8
and eax, 0xff00ff
and r8d, 0xff00ff
imul eax, ecx
imul r8d, ecx
mov ecx, 0x100
shr eax, 8
shr r8d, 8
and eax, 0xff00ff
and r8d, 0xff00ff
add r9d, eax
add r8d, edx
mov edx, 0x100
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r9d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r8d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r9d
shl r9d, 8
or ecx, r8d
shr eax, 8
xor edx, ecx
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r9d
xor edx, ecx
mov dword [r10], edx
cmp esi, r11d
jl 0x180078920
mov esi, dword [rsp + 0x48]
test esi, esi
je 0x1800792dc
cmp ebp, r13d
jge 0x1800792dc
mov r8, qword [rdi]
mov ecx, 0x100
mov eax, dword [r8 + 0xc]
imul eax, ebp
movsxd rdx, eax
add rdx, qword [r8]
mov qword [rdi + 8], rdx
mov eax, dword [r8 + 0x10]
imul eax, ebx
movsxd r10, eax
add r10, rdx
mov edx, dword [rdi + 0x10]
mov r9d, edx
and edx, 0xff00ff
shr r9d, 8
and r9d, 0xff00ff
imul edx, esi
shr edx, 8
and edx, 0xff00ff
imul r9d, esi
shr r9d, 8
and r9d, 0xff00ff
mov eax, r9d
shr eax, 0x10
sub ecx, eax
mov eax, dword [r10]
mov r8d, eax
shr eax, 8
and eax, 0xff00ff
and r8d, 0xff00ff
imul eax, ecx
imul r8d, ecx
mov ecx, 0x100
shr eax, 8
shr r8d, 8
and eax, 0xff00ff
and r8d, 0xff00ff
add r9d, eax
add r8d, edx
mov edx, 0x100
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r9d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r8d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r9d
shl r9d, 8
or ecx, r8d
shr eax, 8
xor edx, ecx
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r9d
xor edx, ecx
mov dword [r10], edx
jmp 0x1800792dc
cmp ebx, ecx
mov r14d, ebx
mov ebx, r8d
cmovl r14d, ecx
cmp edx, r8d
cmovl ebx, edx
sub ebx, r14d
test r10d, r10d
je 0x180078b2e
cmp r15d, ecx
jl 0x180078b2e
mov r15b, 1
jmp 0x180078b31
xor r15b, r15b
test r11d, r11d
je 0x180078b40
cmp r8d, edx
jge 0x180078b40
mov r12b, 1
jmp 0x180078b43
xor r12b, r12b
mov r11d, dword [rsp + 0x40]
test r11d, r11d
je 0x180078de2
cmp r9d, esi
jl 0x180078de2
mov rdx, qword [rdi]
mov eax, dword [rdx + 0xc]
imul eax, r9d
movsxd r9, eax
add r9, qword [rdx]
mov qword [rdi + 8], r9
test r15b, r15b
je 0x180078c65
mov eax, dword [rdx + 0x10]
mov edx, dword [rdi + 0x10]
mov r8d, r10d
imul r8d, r11d
imul eax, dword [rsp + 0x34]
mov r10d, edx
and edx, 0xff00ff
movsxd r11, eax
shr r10d, 8
sar r8d, 8
add r11, r9
and r10d, 0xff00ff
mov ecx, 0x100
imul edx, r8d
shr edx, 8
and edx, 0xff00ff
imul r10d, r8d
shr r10d, 8
and r10d, 0xff00ff
mov eax, r10d
shr eax, 0x10
sub ecx, eax
mov eax, dword [r11]
mov r9d, eax
shr eax, 8
and eax, 0xff00ff
and r9d, 0xff00ff
imul eax, ecx
imul r9d, ecx
mov ecx, 0x100
shr eax, 8
shr r9d, 8
and eax, 0xff00ff
and r9d, 0xff00ff
add r10d, eax
add r9d, edx
mov edx, 0x100
mov eax, r10d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r10d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r10d
shl r10d, 8
or ecx, r9d
shr eax, 8
xor edx, ecx
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r10d
xor edx, ecx
mov dword [r11], edx
mov r11d, dword [rsp + 0x40]
test ebx, ebx
jle 0x180078ce9
mov eax, dword [rdi + 0x10]
lea edx, [r11 + 1]
mov ecx, eax
mov r8d, eax
shr eax, 8
and eax, 0xff00ff
and r8d, 0xff00ff
shr ecx, 8
and ecx, 0xffff00ff
imul eax, edx
imul r8d, edx
shr r8d, 8
imul ecx, edx
xor r8d, ecx
and r8d, 0xff00ff
xor r8d, eax
mov rax, qword [rdi]
movsxd rcx, dword [rax + 0x10]
mov eax, ecx
imul eax, r14d
movsxd rdx, eax
mov eax, r8d
add rdx, qword [rdi + 8]
shr eax, 0x18
cmp al, 0xff
jb 0x180078cde
mov eax, ebx
nop dword [rax]
dec eax
mov dword [rdx], r8d
add rdx, rcx
test eax, eax
jg 0x180078cd0
jmp 0x180078ce9
mov r9d, ebx
mov rcx, rdi
call fcn.180083560
test r12b, r12b
je 0x180078de2
mov rax, qword [rdi]
mov r9d, dword [rdi + 0x10]
mov r8d, dword [rsp + 0x4c]
imul r8d, dword [rsp + 0x40]
mov ecx, dword [rax + 0x10]
mov r10d, r9d
and r9d, 0xff00ff
shr r10d, 8
sar r8d, 8
and r10d, 0xff00ff
imul ecx, dword [rsp + 0x28]
movsxd r11, ecx
mov ecx, 0x100
imul r9d, r8d
add r11, qword [rdi + 8]
shr r9d, 8
imul r10d, r8d
mov edx, dword [r11]
shr r10d, 8
and r9d, 0xff00ff
and r10d, 0xff00ff
mov eax, r10d
shr eax, 0x10
sub ecx, eax
mov eax, edx
shr edx, 8
and eax, 0xff00ff
and edx, 0xff00ff
imul eax, ecx
imul edx, ecx
mov ecx, 0x100
shr eax, 8
shr edx, 8
and eax, 0xff00ff
and edx, 0xff00ff
add r9d, eax
add r10d, edx
mov edx, 0x100
mov eax, r10d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r10d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r10d
shl r10d, 8
or ecx, r9d
shr eax, 8
xor edx, ecx
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r10d
xor edx, ecx
mov dword [r11], edx
cmp r13d, dword [rsp + 0x2c]
cmovl ebp, r13d
cmp esi, dword [rsp + 0x24]
cmovl esi, dword [rsp + 0x24]
cmp esi, ebp
jge 0x18007903c
mov r13d, dword [rsp + 0x44]
mov rdx, qword [rdi]
mov eax, dword [rdx + 0xc]
imul eax, esi
movsxd r8, eax
add r8, qword [rdx]
mov qword [rdi + 8], r8
test r15b, r15b
je 0x180078efa
mov eax, dword [rdx + 0x10]
mov ecx, 0x100
imul eax, dword [rsp + 0x34]
movsxd r10, eax
add r10, r8
mov r8d, dword [rdi + 0x10]
mov edx, dword [r10]
mov r9d, r8d
and r8d, 0xff00ff
shr r9d, 8
and r9d, 0xff00ff
imul r8d, r13d
shr r8d, 8
and r8d, 0xff00ff
imul r9d, r13d
shr r9d, 8
and r9d, 0xff00ff
mov eax, r9d
shr eax, 0x10
sub ecx, eax
mov eax, edx
shr edx, 8
and eax, 0xff00ff
and edx, 0xff00ff
imul eax, ecx
imul edx, ecx
mov ecx, 0x100
shr eax, 8
shr edx, 8
and eax, 0xff00ff
and edx, 0xff00ff
add r8d, eax
add r9d, edx
mov edx, 0x100
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r9d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r8d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r9d
shl r9d, 8
or ecx, r8d
shr eax, 8
xor edx, ecx
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r9d
xor edx, ecx
mov dword [r10], edx
test ebx, ebx
jle 0x180078f3c
mov rax, qword [rdi]
movsxd r8, dword [rax + 0x10]
mov eax, r8d
imul eax, r14d
movsxd rdx, eax
add rdx, qword [rdi + 8]
cmp byte [rdi + 0x13], 0xff
jb 0x180078f2d
mov eax, dword [rdi + 0x10]
mov ecx, ebx
nop
dec ecx
mov dword [rdx], eax
add rdx, r8
test ecx, ecx
jg 0x180078f20
jmp 0x180078f3c
mov r8d, dword [rdi + 0x10]
mov r9d, ebx
mov rcx, rdi
call fcn.180083560
test r12b, r12b
je 0x18007902a
mov rax, qword [rdi]
mov r8d, dword [rdi + 0x10]
mov ecx, dword [rax + 0x10]
mov r9d, r8d
and r8d, 0xff00ff
shr r9d, 8
imul r8d, dword [rsp + 0x4c]
and r9d, 0xff00ff
shr r8d, 8
imul ecx, dword [rsp + 0x28]
and r8d, 0xff00ff
movsxd r10, ecx
mov ecx, 0x100
add r10, qword [rdi + 8]
imul r9d, dword [rsp + 0x4c]
shr r9d, 8
mov edx, dword [r10]
and r9d, 0xff00ff
mov eax, r9d
shr eax, 0x10
sub ecx, eax
mov eax, edx
shr edx, 8
and eax, 0xff00ff
and edx, 0xff00ff
imul eax, ecx
imul edx, ecx
mov ecx, 0x100
shr eax, 8
shr edx, 8
and eax, 0xff00ff
and edx, 0xff00ff
add r8d, eax
add r9d, edx
mov edx, 0x100
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r9d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r8d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r9d
shl r9d, 8
or ecx, r8d
shr eax, 8
xor edx, ecx
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r9d
xor edx, ecx
mov dword [r10], edx
inc esi
cmp esi, ebp
jl 0x180078e01
mov r13d, dword [rsp + 0x90]
mov esi, dword [rsp + 0x48]
mov ebp, dword [rsp + 0x2c]
test esi, esi
je 0x1800792d3
cmp ebp, r13d
jge 0x1800792d3
mov rdx, qword [rdi]
mov eax, dword [rdx + 0xc]
imul eax, ebp
movsxd r9, eax
add r9, qword [rdx]
test r15b, r15b
mov r15d, dword [rsp + 0x34]
mov qword [rdi + 8], r9
je 0x180079160
mov eax, dword [rdx + 0x10]
mov edx, dword [rdi + 0x10]
mov r8d, dword [rsp + 0x44]
imul eax, r15d
imul r8d, esi
movsxd r11, eax
mov r10d, edx
and edx, 0xff00ff
add r11, r9
shr r10d, 8
sar r8d, 8
and r10d, 0xff00ff
mov ecx, 0x100
imul edx, r8d
shr edx, 8
and edx, 0xff00ff
imul r10d, r8d
shr r10d, 8
and r10d, 0xff00ff
mov eax, r10d
shr eax, 0x10
sub ecx, eax
mov eax, dword [r11]
mov r9d, eax
shr eax, 8
and eax, 0xff00ff
and r9d, 0xff00ff
imul eax, ecx
imul r9d, ecx
mov ecx, 0x100
shr eax, 8
shr r9d, 8
and eax, 0xff00ff
and r9d, 0xff00ff
add r10d, eax
add r9d, edx
mov edx, 0x100
mov eax, r10d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r10d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r10d
shl r10d, 8
or ecx, r9d
shr eax, 8
xor edx, ecx
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r10d
xor edx, ecx
mov dword [r11], edx
test ebx, ebx
jle 0x1800791d9
mov eax, dword [rdi + 0x10]
lea edx, [rsi + 1]
mov ecx, eax
mov r8d, eax
shr eax, 8
and eax, 0xff00ff
and r8d, 0xff00ff
shr ecx, 8
and ecx, 0xffff00ff
imul eax, edx
imul r8d, edx
shr r8d, 8
imul ecx, edx
xor r8d, ecx
and r8d, 0xff00ff
xor r8d, eax
mov rax, qword [rdi]
movsxd rcx, dword [rax + 0x10]
mov eax, ecx
imul eax, r14d
movsxd rdx, eax
mov eax, r8d
add rdx, qword [rdi + 8]
shr eax, 0x18
cmp al, 0xff
jb 0x1800791ce
dec ebx
mov dword [rdx], r8d
add rdx, rcx
test ebx, ebx
jg 0x1800791c0
jmp 0x1800791d9
mov r9d, ebx
mov rcx, rdi
call fcn.180083560
test r12b, r12b
je 0x1800792d8
mov edx, dword [rdi + 0x10]
mov rax, qword [rdi]
mov r8d, dword [rsp + 0x4c]
imul r8d, esi
mov ecx, dword [rax + 0x10]
mov r10d, edx
and edx, 0xff00ff
shr r10d, 8
sar r8d, 8
and r10d, 0xff00ff
imul ecx, dword [rsp + 0x28]
movsxd r11, ecx
mov ecx, 0x100
imul edx, r8d
add r11, qword [rdi + 8]
shr edx, 8
imul r10d, r8d
and edx, 0xff00ff
shr r10d, 8
and r10d, 0xff00ff
mov eax, r10d
shr eax, 0x10
sub ecx, eax
mov eax, dword [r11]
mov r9d, eax
shr eax, 8
and eax, 0xff00ff
and r9d, 0xff00ff
imul eax, ecx
imul r9d, ecx
mov ecx, 0x100
shr eax, 8
shr r9d, 8
and eax, 0xff00ff
and r9d, 0xff00ff
add r10d, eax
add r9d, edx
mov edx, 0x100
mov eax, r10d
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, r10d
shl eax, 8
shl edx, 8
or edx, eax
mov eax, r9d
shr eax, 8
and eax, 0xff00ff
sub ecx, eax
mov eax, r10d
shl r10d, 8
or ecx, r9d
shr eax, 8
xor edx, ecx
and eax, 0xff00ff
mov ecx, 0x100
sub ecx, eax
and edx, 0xff00ff
shl ecx, 8
or ecx, r10d
xor edx, ecx
mov dword [r11], edx
jmp 0x1800792d8
mov r15d, dword [rsp + 0x34]
mov ebx, dword [rsp + 0x20]
mov r8d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x30]
mov r13, qword [rsp + 0xa0]
add r13, 0x10
mov qword [rsp + 0xa0], r13
cmp r13, qword [rsp + 0xa8]
jne 0x180078790
mov r15, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x98]
add rsp, 0x70
pop r13
pop rdi
pop rbx
ret