Function at 0x18001d688
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov byte [rsp + 0x10], dl
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd8
movzx eax, word [r9 + 0x6b48]
mov r14, rcx
movsxd r11, dword [r9 + 0x4f68]
mov bpl, dl
mov rdi, qword [rsp + 0x140]
mov r15, r8
mov r8, qword [0x18002f920]
mov rsi, r9
mov r12, qword [0x18002f8b0]
mov r10, r8
mov r13, qword [0x18002f8e8]
add r10, r10
movzx ebx, word [rdi + 0x3ce8]
mov word [rsp + 0x50], ax
mov rax, qword [0x18002f918]
mov byte [rsp + 0x120], dl
mov qword [rsp + 0x80], rbx
mov dword [rsp + 0x54], 0x1290
add r11, qword [rax + r10*8 + 0xb8]
mov eax, dword [r9 + 0x4588]
mov r9, qword [0x18002f930]
add eax, 0xbbe
mov r10d, dword [0x18002f8c4]
cdqe
mov qword [rsp + 0xb8], rax
mov rax, r8
or rax, 0xa2f
mov qword [rsp + 0x90], r11
mov qword [rsp + 0x98], rax
movzx eax, word [rcx + 0x2620]
movsxd rcx, dword [0x18002f948]
cdq
idiv ecx
mov rax, qword [0x18002f8c8]
mov dword [rsp + 0x68], edx
mov rdx, qword [0x18002f8b8]
dec rdx
mov qword [rsp + 0x70], rcx
mov qword [0x18002f8b8], rdx
mov rax, qword [rax + 0xc388]
mov qword [rsp + 0x58], rax
movzx eax, word [r14]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x78], r9
mov qword [rsp + 0x60], rdx
movzx ecx, word [rdi + rax*2 + 0x4e]
movzx eax, word [r14 + 0x1276]
imul eax, ecx
mov dword [rsp + 0x6c], r10d
cdqe
mov qword [rsp + 0xb0], rax
mov rax, qword [0x18002f8f8]
movsxd rcx, dword [rsi + rax*4 + 0x6c]
cmp r9, rcx
ja 0x18001e230
lea eax, [r10 + r10]
movsxd rcx, eax
mov rax, qword [0x18002f8c8]
mov rax, qword [rax + rcx*8]
cmp qword [0x18002f8e0], rax
jbe 0x18001e230
movzx eax, word [r15 + rbx*2]
cmp rax, r12
jb 0x18001e230
mov r10d, 1
sub r8, r10
mov qword [0x18002f920], r8
movzx eax, word [rdi + r8*2]
cmp qword [0x18002f928], rax
jb 0x18001dac3
mov eax, dword [0x18002f8a4]
mov r8, qword [rsp + 0xb8]
add eax, 4
movsxd rcx, eax
mov eax, 0x85
mov dword [rsp + 0x54], 0x27fd
and word [rdi + rcx*2], ax
movsxd rcx, dword [0x18002f8a4]
movzx eax, r9w
imul rax, qword [rsp + 0xb0]
xor qword [r13 + rcx*8], rax
mov eax, dword [rdx]
lea ecx, [rax + rax*2]
movsxd rdx, ecx
mov ecx, dword [rsi + 0x7cec]
sub ecx, 0x19c1
mov eax, dword [r8 + rdx*4]
imul eax, ecx
mov dword [r8 + rdx*4], eax
mov eax, dword [r12]
add eax, eax
movsxd rdx, eax
mov eax, 0x14bd
movzx ecx, word [r14 + rdx*2]
imul ecx, eax
mov word [r14 + rdx*2], cx
mov r13, qword [rsp + 0x60]
mov r12, qword [rsp + 0x58]
mov r11, qword [rsp + 0x70]
movsxd r8, dword [0x18002f914]
cmp r8, 0x6da
jg 0x18001d97c
lea r9, [rbx + 0x1e]
shl r8, 4
lea r9, [rdi + r9*2]
mov r12d, 0xffff
movzx eax, word [r14]
or dword [rsi + rax*4 + 0x88], 0xce
movzx ecx, word [r14]
movzx eax, word [r14 + rcx*2]
sub ax, word [rdi + rcx*2]
add ax, word [0x18002f8c0]
mov word [rdi + rcx*2], ax
movzx eax, word [r8 + r11 + 0x18]
add r8, 0x10
sub ax, word [0x18002f93c]
and ax, word [0x18002f938]
movzx ecx, word [r9]
movzx eax, ax
imul ecx, eax
mov word [r9], cx
lea r9, [r9 - 2]
mov eax, dword [0x18002f8a0]
add eax, 0x13
movsxd rdx, eax
mov eax, 0x38c
movzx ecx, word [rdi + rdx*2]
imul ecx, eax
mov word [rdi + rdx*2], cx
mov edx, 0x919
movzx ecx, word [0x18002f8dc]
movzx eax, word [0x18002f8c4]
xor ax, dx
or word [r14 + rcx*2], ax
add word [0x18002f8dc], r12w
cmp r8, 0x6da0
jle 0x18001d8da
mov r12, qword [rsp + 0x58]
movsxd rbx, dword [0x18002f944]
mov r9b, byte [0x18002f938]
movzx ecx, bpl
mov eax, ecx
cdq
idiv dword [rsi + 0x4a8]
movzx eax, word [r14]
movsxd r11, edx
mov rdx, rbx
movzx r10d, word [rdi + rax*2]
mov rax, qword [0x18002f8f8]
inc rax
mov qword [0x18002f8f8], rax
movsxd r8, dword [r13 + rax*4]
mov eax, 0xf09
and r8, qword [0x18002f8e0]
sub eax, ecx
mov qword [rsp + 0x30], r8
mov r8d, 0x71
mov qword [rsp + 0x28], r10
movsxd rcx, eax
mov qword [rsp + 0x20], r11
call fcn.180016eec
movzx ecx, word [rsp + 0x50]
movzx r11d, bpl
mov word [r15 + rcx*2], ax
mov eax, 0x917952af
imul dword [0x18002f8c0]
mov rbx, qword [0x18002f8b8]
add edx, dword [0x18002f8c0]
dec rbx
mov rcx, qword [rsp + 0x90]
sar edx, 9
mov eax, edx
mov qword [0x18002f8b8], rbx
shr eax, 0x1f
add edx, eax
movzx eax, word [r14 - 2]
movsxd r8, edx
mov r9b, byte [rsi + rax*4 + 0x6c]
mov rax, qword [0x18002f8f8]
movsxd r10, dword [rcx + rax*8]
mov rcx, rbx
imul eax, dword [rsp + 0x54], 0x1944
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], r11
movsxd rdx, eax
mov qword [rsp + 0x20], rdx
mov edx, 0x156d
call fcn.180016eec
mov ecx, dword [0x18002f8a4]
mov r11, qword [rsp + 0x70]
mov dword [0x18002f910], eax
movzx eax, word [r14]
mov r9, qword [r12]
lea edx, [rcx + rcx*2]
mov rcx, qword [0x18002f918]
movsxd r8, edx
xor edx, edx
mov rax, qword [r11 + rax*8]
div qword [rcx + r8*8]
movzx ecx, word [rdi + r9*2]
mov rax, rdx
xor edx, edx
div rcx
mov word [rdi + r9*2], ax
mov eax, 0x89d
add rsp, 0xd8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
movzx ecx, word [rsp + 0x50]
mov eax, dword [0x18002f8c0]
add ecx, 0x24
add eax, 0x1f40
cdq
idiv dword [r11 + rcx*4]
mov dword [r11 + rcx*4], edx
mov ecx, dword [0x18002f944]
mov r9b, cl
movsxd rdx, dword [0x18002f914]
movzx ebx, word [r14 + 0x2b3a]
movsxd rax, dword [0x18002f8c0]
or rbx, rax
lea eax, [rcx - 0xd83]
sub ecx, r10d
movsxd r8, eax
mov dword [0x18002f944], ecx
movzx eax, word [r14]
mov rcx, qword [0x18002f8f0]
movsxd r11, dword [rcx + rax*4 + 0x7c]
mov eax, 0x119d
movsxd rcx, dword [rcx + rdx*4]
add edx, r10d
mov dword [0x18002f914], edx
xor r11, rcx
movzx r10d, word [r14]
cdq
mov rcx, rbx
idiv dword [rsi + r10*4]
mov edx, 0xe5d
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], 0x1232
mov qword [rsp + 0x20], r11
call fcn.180006b70
mov rbx, qword [rsp + 0x80]
mov r9d, 1
movsxd rcx, eax
mov r11d, 0x1290
mov eax, dword [0x18002f8c4]
mov r8, rbx
mov qword [0x18002f8b8], rcx
add r8, r8
mov rcx, qword [0x18002f920]
add dword [rcx*8 + 0x8af], eax
mov rdx, qword [0x18002f8f8]
sub rdx, r9
mov qword [0x18002f8f8], rdx
movzx eax, word [r14]
movzx ecx, word [rdi + rax*2]
mov eax, dword [rsi + rdx*4]
sub eax, ecx
mov ecx, dword [0x18002f944]
cdq
idiv dword [0x18002f8a4]
mov dword [0x18002f8a4], eax
mov eax, 0x36406c81
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x97
mov rdx, qword [0x18002f908]
sub ecx, eax
sub ecx, r11d
mov r11d, ecx
mov dword [rsp + 0x54], ecx
lea eax, [rcx*4 + 0xa]
movsxd rcx, eax
mov eax, dword [rsi + rcx*4]
xor dword [rdx + r8*8], eax
mov edx, 0x37e
movzx ecx, word [r14]
sub r14, 2
movzx eax, word [0x18002f8b0]
sub ax, word [r15 + rcx*4 + 0x14]
add ax, dx
mov word [r15 + rcx*4 + 0x14], ax
movsxd r10, dword [0x18002f8b8]
cmp r10d, dword [0x18002f8c4]
mov dword [rsp + 0x120], r10d
jg 0x18001ddf7
mov r11, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
movzx eax, bpl
mov qword [rsp + 0xc0], rax
lea rax, [r14 + r10*2]
mov qword [rsp + 0x80], rax
lea rax, [rbx + rbx*2]
lea rdx, [r11 + rax*8]
movzx esi, bpl
mov rbp, qword [rsp + 0x90]
mov dword [rsp + 0x88], esi
lea rax, [rbp + 0x34]
lea rax, [rax + r10*4]
mov qword [rsp + 0xa8], rax
mov eax, 0x88f
sub rax, rbp
mov qword [rsp + 0x98], rax
jmp 0x18001dcad
mov r9d, 1
movsxd rax, dword [rbp + 0x7854]
add rdx, 0x18
mov qword [rsp + 0xa0], rdx
add rbx, r9
and rax, qword [rdx]
add qword [0x18002f8e8], rax
mov rax, qword [0x18002f8f8]
movzx r9d, word [r14 + 0x3266]
xor r9, 0x16ab
movzx r8d, word [r14 + rax*2]
mov eax, r10d
cdq
add r8, 0x1cda
idiv esi
movzx edx, word [rsp + 0x68]
movsxd rcx, eax
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0xc0]
call fcn.180015d24
mov r8, qword [rsp + 0xa8]
mov esi, eax
mov r9, qword [rsp + 0x80]
add eax, eax
movsxd r10, dword [rsp + 0x120]
mov r11d, 1
movsxd rcx, eax
add esi, r11d
mov eax, 0x89
mov dword [rsp + 0x6c], esi
mov esi, dword [rsp + 0x88]
add word [rcx + rcx + 0x6b2], ax
movzx eax, word [r14]
lea rcx, [rax + rax*2]
movsxd rax, dword [0x18002f8c0]
xor qword [r13 + rcx*8], rax
mov eax, dword [0x18002f8e8]
movsxd rcx, dword [0x18002f8c4]
xor dword [r12 + rcx*4], eax
mov eax, esi
sub eax, dword [r8]
mov dword [r8], eax
mov rax, qword [rsp + 0x98]
mov dword [rax + r8], 0x1e8
add r8, 4
movzx ecx, word [r9]
add r9, 2
movsxd rdx, dword [r15]
and rcx, r10
add r10d, r11d
mov qword [rsp + 0xa8], r8
mov dword [rsp + 0x120], r10d
mov qword [rsp + 0x80], r9
and qword [rdi + rdx*8], rcx
cmp r10d, dword [0x18002f8c4]
mov rdx, qword [rsp + 0xa0]
jle 0x18001dca7
mov rdi, qword [rsp + 0x140]
mov bpl, byte [rsp + 0x128]
mov rsi, qword [rsp + 0x138]
mov r15, qword [rsp + 0x130]
mov r11d, dword [rsp + 0x54]
mov r9, qword [rsp + 0x58]
mov ecx, 0x10fa
mov rax, qword [r9]
cmp word [r14 + rax*2 + 0x42], cx
jbe 0x18001ded5
movzx eax, word [rsp + 0x68]
inc dword [rsp + 0x54]
movsxd r10, r11d
mov qword [rsp + 0x48], 0x163b
mov qword [rsp + 0x40], 0x89e
add dword [rsi + r10*4], eax
mov rax, qword [0x18002f8a8]
movzx ecx, word [r14]
movsxd rdx, dword [0x18002f8c4]
movsxd rcx, dword [rax + rcx*8]
and qword [r13 + rdx*8], rcx
xor edx, edx
mov r13, qword [rsp + 0x60]
mov eax, dword [r13]
lea eax, [rax*2 + 0x21]
movsxd rcx, eax
mov rax, qword [0x18002f920]
mov r8b, byte [rsi + rcx*4]
movsxd r9, dword [r12 + rax*4]
mov rax, qword [0x18002f8b8]
mov cl, byte [r15 + 0x2a62]
div r10
movzx r10d, word [r14 + r10*2]
xor edx, edx
mov r11, rax
movzx eax, bpl
div r10d
movsxd rax, edx
mov edx, 0x62b
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], 0x1b19
mov qword [rsp + 0x28], 0xd0
mov qword [rsp + 0x20], r11
call fcn.180006874
mov r12, qword [rsp + 0x58]
mov ecx, eax
mov r9, qword [rsp + 0x78]
mov rax, qword [r12]
mov word [rdi + rax*2], cx
jmp 0x18001e150
movzx eax, word [rsp + 0x50]
cmp eax, dword [0x18002f8a4]
jl 0x18001e103
imul eax, dword [0x18002f948], 0x121c
movsxd rcx, eax
xor qword [0x18002f8e0], rcx
mov eax, dword [r12]
mov rcx, qword [0x18002f908]
lea eax, [rax*2 + 0xb]
movsxd r8, eax
movzx eax, word [r14 + 2]
cdq
idiv dword [rcx + r8*4]
mov dword [rcx + r8*4], edx
xor edx, edx
movsxd rax, dword [r12 + 4]
mov r12d, 1
and qword [r13 + rax*8], 0x13a4
movzx eax, word [rsp + 0x50]
add ax, r12w
movzx ecx, ax
mov word [rsp + 0x50], ax
mov rax, qword [rsp + 0xb0]
div qword [r9 + rcx*8]
mov qword [r9 + rcx*8], rdx
movzx eax, word [r15 + 0x3fa]
cmp dword [0x18002f8a4], eax
jne 0x18001e01d
mov rcx, qword [0x18002f8f8]
movabs rax, 0xb70fbb5a19be3659
mul rcx
mov rax, qword [0x18002f900]
add rcx, r12
shr rdx, 8
mov r8d, 0x81
mov r12, r9
mov r9, qword [rsp + 0x78]
add edx, dword [rax + 0x1514]
mov eax, dword [0x18002f944]
imul eax, edx
xor edx, edx
mov qword [0x18002f8f8], rcx
movzx ecx, bpl
mov dword [0x18002f944], eax
mov eax, 0x7e7
div ecx
mov rax, qword [0x18002f8c8]
xor dword [0x18002f910], edx
xor edx, edx
mov rcx, qword [rax + 0xa8c8]
mov qword [0x18002f920], rcx
movzx eax, word [r14]
movzx eax, word [r15 + rax*2 + 0xe]
div rcx
mov eax, dword [0x18002f914]
imul eax, edx
mov dword [0x18002f914], eax
mov rax, qword [0x18002f918]
movzx edx, word [r14]
movzx ecx, word [rax + 0x5bf0]
sub cx, r8w
or word [rdx*4 + 0x6b2], cx
jmp 0x18001e14b
mov rcx, qword [0x18002f900]
mov eax, 0x1c2c
mov r13, qword [rsp + 0x60]
movzx edx, bpl
add edx, 0xe
sub eax, dword [rcx + rdx*4]
mov dword [rcx + rdx*4], eax
mov sil, byte [rdi + 0x62]
movzx eax, word [r14]
movzx edi, word [0x228e]
mov r10, qword [0x18002f8f8]
movzx edx, word [0x18002f93c]
sub r10, r12
sub sil, byte [r13 + rax*4]
movzx eax, word [0x18002f938]
mov r9, qword [0x18002f8d0]
xor rdi, rax
movzx eax, word [r14 + 2]
lea rcx, [rax + rax*2]
mov rax, qword [0x18002f908]
mov r8b, byte [rax + rcx*4 + 8]
mov rax, qword [0x18002f8f0]
sub r8b, byte [rsp + 0x68]
movzx ecx, bpl
sub r8b, r12b
movsxd rbx, dword [rax + 0x34e0]
mov rax, qword [0x18002f8a8]
mov ecx, dword [rax + rcx*4]
movzx eax, word [0x18002f940]
add ecx, edx
sub r9, rax
movsxd r11, ecx
mov qword [rsp + 0x48], r9
mov rdx, rdi
mov r9, qword [rsp + 0x78]
mov cl, sil
mov qword [rsp + 0x40], r9
mov r9d, 0x87
mov qword [0x18002f8f8], r10
movzx eax, word [r15 + r10*8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0xa3
call fcn.180006874
jmp 0x18001daaa
mov eax, dword [0x18002f948]
add bpl, 1
movsxd r9, dword [rsp + 0x6c]
add eax, 0x18
movzx ecx, word [r14 + 0x1526]
mov rdx, qword [0x18002f8c8]
mov r12, qword [rsp + 0x58]
movsxd r8, eax
mov rax, r9
or rax, 0x1cfd
and rcx, rax
movzx eax, bpl
sub rax, r9
xor qword [rdx + r8*8], rcx
sub rax, qword [rsp + 0x78]
mov r9, rax
mov r13, qword [rsp + 0x60]
mov eax, dword [0x18002f914]
xor edx, edx
dec eax
mov dword [0x18002f914], eax
add eax, 0x19
movsxd rcx, eax
movzx eax, word [rdi + rcx*2]
div rbx
mov rbx, rax
mov eax, 0xffff
add word [r14], ax
movzx edx, word [r14]
mov ecx, dword [0x18002f8c4]
mov rax, qword [rsp + 0xb8]
add ecx, 0xe
movsxd r8, ecx
movzx edx, word [rdi + rdx*8 + 0x3e]
movzx ecx, r9w
imul edx, ecx
add word [r15 + r8*2], dx
movzx ecx, word [r14]
and dword [rax + rcx*4], 0x1ebe
mov rcx, qword [0x18002f8f8]
mov r10d, dword [0x18002f8c4]
dec r10d
movzx eax, word [r15 + rcx*4]
and qword [0x18002f8b0], rax
movzx eax, word [r15 + rcx*4]
imul rcx, rax, 0x9be
movzx eax, word [r14]
movzx edx, word [rdi + rax*4]
mov rax, qword [0x18002f8a8]
mov dword [0x18002f8c4], r10d
movzx r8d, word [r14]
mov r9d, dword [rax + r8*4]
mov eax, dword [0x18002f930]
imul r9d, r10d
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], 0x1ece
movsxd r8, r9d
mov r9b, 0x65
mov qword [rsp + 0x20], r8
mov r8d, 0x3109da0
call fcn.180006b70
movsxd rcx, eax
mov qword [0x18002f8e8], rcx
jmp 0x18001d8af
mov r8, qword [rsp + 0xa0]
xor edx, edx
mov eax, 0x17ba
movzx ecx, word [r14 + r8*2]
div ecx
mov word [r14 + r8*2], ax
sub r14, 2
movzx r8d, word [0x18002f8dc]
imul eax, r8d, 0x159f
mov r10d, r8d
mov r8, qword [0x18002f8a8]
mov qword [rsp + 0x20], r10
cdq
idiv dword [0x18002f8d8]
mov dword [0x18002f8d8], eax
movsxd rcx, dword [r12]
movzx r11d, word [r14 + rcx*2]
mov rcx, qword [0x18002f8f8]
dec rcx
mov qword [0x18002f8f8], rcx
mov r9d, dword [r8 + r10*4]
add r9d, eax
inc eax
mov ecx, dword [rsi + rcx*8]
mov dword [0x18002f8d8], eax
sub ecx, 0xccf
movzx eax, word [r14 + 0x3c3a]
movsxd r8, r9d
mov r9, qword [r13 + r10*8]
movsxd rdx, ecx
sub r9, rax
mov ecx, r11d
call fcn.180015d24
movsxd rcx, dword [r12]
mov r10d, 1
sub bpl, r10b
mov r9d, 0xffff
mov word [rcx*2 + 0x6b2], ax
movzx ecx, word [r14]
movzx eax, bpl
and dword [rsi + rcx*4], eax
movzx ecx, word [0x18002f938]
mov rax, qword [0x18002f900]
mov eax, dword [rax + 0x5960]
add word [0x18002f938], r9w
cdq
idiv ecx
movsxd rcx, dword [rsp + 0x6c]
and word [0x18002f8dc], dx
mov rdx, qword [rsp + 0x90]
movzx eax, bpl
sub rax, qword [0x18002f928]
mov qword [0x18002f928], rax
mov eax, dword [0x18002f8d8]
cmp dword [rdx + rcx*4], eax
jle 0x18001d8a5
mov rcx, qword [0x18002f920]
mov eax, 0x1c9c
mov r8, qword [rsp + 0x98]
add rcx, r10
mov r12, qword [rsp + 0x58]
cdq
mov r11, qword [rsp + 0x70]
mov r13, qword [rsp + 0x60]
mov qword [0x18002f920], rcx
idiv dword [r8 + rcx*4 + 0x20]
movzx eax, bpl
movzx ebp, byte [rsp + 0x120]
add rax, rax
mov dword [r8 + rcx*4 + 0x20], edx
mov rdx, qword [r12]
mov rcx, qword [0x18002f8c8]
mov rax, qword [r11 + rax*8]
xor qword [rcx + rdx*8], rax
mov eax, 0x18b6
mov rdx, qword [0x18002f920]
movzx ecx, word [r15 + rdx*8]
imul ecx, eax
mov word [r15 + rdx*8], cx
xor edx, edx
mov rcx, qword [0x18002f8f8]
imul rcx, rbp
mov qword [0x18002f8f8], rcx
add word [r14], r9w
movzx eax, word [r14]
mov rcx, qword [0x18002f8f8]
mov r10d, eax
mov r9, qword [0x18002f918]
shl r10, 5
movzx r8d, word [rdi + rcx*2]
mov rax, qword [r9 + rax*8]
movsxd rcx, dword [0x18002f914]
div r8
and rax, rcx
add qword [r10 + r9 + 0x48], rax
jmp 0x18001d8b4