Function at 0x180025540
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x14f8]
mov eax, 0x15f8
call fcn.18006a390
sub rsp, rax
mov edi, r8d
lea r14d, [r8 + 0x6e0]
mov esi, r8d
mov r10, r9
xor r8d, r8d
mov r12, rcx
lea edx, [r8 + 1]
cmp edi, r14d
jae 0x180025872
mov ebx, dword [rbp + 0x1550]
lea rcx, [0x180096ef0]
mov r15, qword [rbp + 0x1560]
lea r13, [0x180096f40]
nop
cmp edi, 0x1c7
ja 0x1800257b9
je 0x18002579d
mov eax, edi
sub eax, 0x87
je 0x180025742
sub eax, 7
je 0x1800256f6
sub eax, 0xf
je 0x180025924
sub eax, 0x8a
je 0x180025606
cmp eax, 7
jne 0x180025863
mov rax, qword [rsp + 0x38]
mov qword [rax + 0x10], r8
mov eax, dword [r12]
mov dword [rbp - 0x20], eax
jmp 0x180025863
xor r9d, r9d
lea rdx, [rbp + 0x420]
lea r8d, [r9 + 0x4c]
call fcn.18001e080
xor r9d, r9d
lea rax, [rbp + 0x420]
lea r8, [rbp - 0x80]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
lea edx, [r9 + 0x43]
call fcn.18001d3e0
mov r10, qword [rbp + 0x1558]
lea r9, [0x180096f20]
xor eax, eax
mov edx, eax
lea rax, [0x180096f2f]
lea rcx, [r10 + 0xf]
cmp r10, rax
ja 0x180025660
cmp rcx, r9
jae 0x180025689
lea rax, [0x180096f4f]
cmp r10, rax
ja 0x180025671
cmp rcx, r13
jae 0x180025689
lea rax, [r15 + 0xaf]
lea r8, [r15 + 0xa0]
cmp r10, rax
ja 0x1800256bd
cmp rcx, r8
jb 0x1800256bd
mov r8, r15
sub r8, r13
nop
lea rcx, [rdx + r13]
movzx eax, byte [rcx + r8 + 0xa0]
xor al, byte [rdx + r9]
xor al, byte [rbp + rdx - 0x80]
xor al, byte [rbp + rdx - 0x30]
xor al, byte [rcx]
mov byte [rdx + r10], al
inc rdx
cmp rdx, 0x10
jb 0x180025690
jmp 0x18002581d
movdqu xmm0, xmmword [r8]
movdqu xmm1, xmmword [0x180096f40]
pxor xmm1, xmm0
movdqu xmm0, xmmword [0x180096f20]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp - 0x80]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rbp - 0x30]
pxor xmm1, xmm0
movdqu xmmword [r10], xmm1
jmp 0x18002581d
mov ecx, 0x18
call fcn.18006f754
mov qword [rsp + 0x38], rax
test rax, rax
je 0x18002592d
mov r10, qword [rbp + 0x1558]
xor r8d, r8d
mov edx, 1
mov rcx, qword [r10]
mov qword [rax], rcx
lea rcx, [0x180096ef0]
mov rax, qword [rsp + 0x38]
mov word [rax + 8], r8w
mov rax, qword [rsp + 0x38]
mov word [rax + 0xa], dx
jmp 0x180025863
mov qword [rsp + 0x20], rcx
lea r9, [rbp + 0x1550]
lea rcx, [rbp - 0x30]
mov dword [rbp + 0x1550], 0xc0
mov r8, r15
mov edx, 0xd1
call fcn.18001c3a0
xor r9d, r9d
lea rcx, [0x180096f10]
mov rdx, r12
lea r8d, [r9 + 0x4c]
call fcn.18001e080
xor r9d, r9d
mov qword [rsp + 0x20], r12
lea r8, [r15 + 0xc0]
lea rcx, [rbp - 0x80]
lea edx, [r9 + 0x43]
call fcn.18001d3e0
jmp 0x180025816
xor r9d, r9d
lea rdx, [rbp + 0x420]
lea rcx, [0x180096f00]
lea r8d, [r9 + 0x4c]
call fcn.18001e080
jmp 0x180025816
mov eax, edi
sub eax, 0x1ce
je 0x18002584e
sub eax, 0x99
je 0x18002582e
sub eax, 7
je 0x1800257fe
cmp eax, 0xa0
jne 0x180025863
test ebx, ebx
je 0x1800257e6
inc dword [r12 + 0x10]
mov rcx, qword [rsp + 0x38]
mov edx, 0x11a
call fcn.18004ff10
mov dword [rsp + 0x38], ebx
jmp 0x18002620e
mov dword [rbp], edx
lea rcx, [rbp - 0x20]
mov rdx, r12
mov r8d, 0x92
call fcn.18002c2b0
mov rbx, rax
mov r10, qword [rbp + 0x1558]
lea rcx, [0x180096ef0]
mov edx, 1
xor r8d, r8d
jmp 0x180025863
xor r9d, r9d
lea rax, [rbp + 0x420]
mov r8, r10
mov qword [rsp + 0x20], rax
mov rcx, r10
lea edx, [r9 + 0x43]
call fcn.18001d3e0
jmp 0x180025816
mov rax, qword [r12 + 8]
mov qword [rbp - 0x18], rax
lea rax, [rsp + 0x38]
mov qword [rbp - 8], rax
mov dword [rbp - 0x10], edx
add edi, 0xa0
cmp edi, r14d
jb 0x1800255b0
lea ebx, [rsi + 0x6c0]
mov dword [rsp + 0x60], ebx
cmp esi, ebx
jae 0x18002620e
mov r13d, dword [rsp + 0x44]
lea rcx, [0x180096f3f]
mov r14d, dword [rbp + 0x1550]
lea rdx, [0x180096f30]
mov r12d, dword [rbp + 0x1550]
mov edi, 8
mov r15d, dword [rsp + 0x48]
nop
cmp esi, 0x17f
ja 0x180026112
je 0x180025ba7
mov eax, esi
sub eax, 0x14
je 0x1800260f2
sub eax, 0x73
je 0x1800260a5
sub eax, 0x1d
je 0x18002608c
sub eax, 0x4b
je 0x180025936
cmp eax, 0x45
jne 0x1800261eb
lea r8, [rsp + 0x30]
mov dword [rsp + 0x30], 3
xor edx, edx
lea ecx, [rax - 8]
call fcn.180015f20
lea rdx, [rbp - 0x70]
mov qword [rbp - 0x70], 0x400
mov ecx, 0xba
call fcn.180062a50
mov qword [rsp + 0x78], rax
jmp 0x1800261eb
mov rax, qword [r12]
jmp 0x180026213
mov dword [rsp + 0x38], eax
jmp 0x18002620e
mov r11, qword [rbp + 0x1560]
xor ebx, ebx
mov r9d, ebx
mov ecx, ebx
mov edx, dword [r11]
test edx, edx
jle 0x180025a5c
cmp edx, 8
jb 0x180025a09
mov eax, edx
and eax, 0x80000007
jge 0x180025968
dec eax
or eax, 0xfffffff8
inc eax
mov rbx, qword [rbp + 0x1558]
lea r11, [rbp + 0x4e4]
movdqa xmm4, xmmword [0x18009ff90]
mov r8d, edx
sub r8d, eax
movd xmm5, edi
mov rax, r10
xorps xmm3, xmm3
lea r10, [rbp + 0x4d4]
sub r10, rbx
sub r11, rbx
nop dword [rax + rax]
movdqu xmm0, xmmword [rax]
add r9d, 8
lea rax, [rax + 0x20]
add rcx, 8
movdqa xmm1, xmm0
pcmpeqd xmm1, xmm3
movdqa xmm2, xmm1
pand xmm1, xmm4
pandn xmm2, xmm0
por xmm2, xmm1
movdqu xmm0, xmmword [rax - 0x10]
pslld xmm2, xmm5
movdqa xmm1, xmm0
pcmpeqd xmm1, xmm3
movdqu xmmword [r10 + rax - 0x20], xmm2
movdqa xmm2, xmm1
pand xmm1, xmm4
pandn xmm2, xmm0
por xmm2, xmm1
pslld xmm2, xmm5
movdqu xmmword [r11 + rax - 0x20], xmm2
cmp r9d, r8d
jl 0x1800259a0
mov r11, qword [rbp + 0x1560]
jmp 0x180025a10
mov rbx, qword [rbp + 0x1558]
mov esi, 1
cmp r9d, edx
jge 0x180025a58
lea rax, [rbp + 0x4d4]
mov r8, rbx
lea rcx, [rax + rcx*4]
lea rax, [rbp + 0x4d4]
sub r8, rax
sub edx, r9d
nop word [rax + rax]
mov eax, dword [r8 + rcx]
lea rcx, [rcx + 4]
test eax, eax
cmove eax, esi
shl eax, 8
mov dword [rcx - 4], eax
sub rdx, rsi
jne 0x180025a40
xor ebx, ebx
jmp 0x180025a61
mov esi, 1
mov edi, 0x81
mov dword [rsp + 0x30], edi
nop word [rax + rax]
cmp edi, 0x81
je 0x18002606d
movsxd rbx, r14d
cmp edi, 0x119
je 0x180025f92
cmp edi, 0x1b1
je 0x180025bb1
cmp edi, 0x249
je 0x180025af4
cmp edi, 0x2e1
jne 0x180026044
movsxd r9, dword [r11]
mov r8, rsi
cmp rsi, r9
jg 0x180026044
nop word [rax + rax]
mov eax, dword [rbp + r8*4 + 0x4d0]
sar eax, 8
cdq
sub eax, edx
sar eax, 1
lea r13d, [rax + 1]
mov ecx, r13d
mov dword [rsp + 0x44], r13d
shl ecx, 8
mov dword [rbp + r8*4 + 0x4d0], ecx
inc r8
cmp r8, r9
jle 0x180025ac0
jmp 0x180026044
xor r8b, r8b
mov r9d, esi
cmp dword [r11], 1
jl 0x180025b9e
mov r10, qword [rbp + 0x1540]
mov r15d, dword [rsp + 0x40]
mov edx, 0x109
mov eax, edx
sub eax, 0x108
je 0x180025b32
xor ebx, ebx
cmp eax, 1
jne 0x180025b76
mov r13d, ebx
mov dword [rsp + 0x40], r9d
mov r15d, r9d
jmp 0x180025b76
movsxd rax, r15d
mov ecx, dword [rbp + rax*4 + 0xce0]
test ecx, ecx
js 0x180025b5f
movsxd rax, ecx
inc r13d
mov dword [rsp + 0x40], ecx
mov ecx, dword [rbp + rax*4 + 0xce0]
test ecx, ecx
jns 0x180025b40
mov r15d, dword [rsp + 0x40]
mov dword [rsp + 0x44], r13d
mov rax, qword [rbp + 0x1548]
mov byte [r10], r13b
movzx r8d, r8b
cmp r13d, dword [rax]
cmovg r8d, esi
xor ebx, ebx
dec edx
cmp edx, 0x107
ja 0x180025b15
inc r9d
mov dword [rsp + 0x44], r13d
inc r10
cmp r9d, dword [r11]
jle 0x180025b10
mov r15d, dword [rsp + 0x48]
test r8b, r8b
jne 0x180026046
mov ebx, dword [rsp + 0x60]
mov edi, 8
mov esi, 0x17f
jmp 0x1800261eb
cmp r14d, 0x104
jl 0x180025bd3
xor r8d, r8d
mov dword [rsp + 0x50], 0x7d1
lea rcx, [rsp + 0x50]
lea edx, [r8 + 0x56]
call fcn.18005c8d0
cmp r14d, 1
jle 0x180025f64
movsxd rsi, dword [rsp + 0x4c]
mov r13d, dword [rsp + 0x70]
mov rdi, rsi
nop word [rax + rax]
mov r11d, 0x66
nop word [rax + rax]
mov eax, r11d
sub eax, 0x66
je 0x180025e17
sub eax, 0x10
je 0x180025e07
sub eax, 0x10
je 0x180025cd0
cmp eax, 0x10
jne 0x180025f35
inc r14d
mov dword [rbp + rbx*4 + 0x14], esi
inc rbx
mov dword [rbp + rdi*4 + 0xce0], 0xffffffff
mov edx, 0xfd
mov eax, edx
sub eax, 0xfd
je 0x180025cb8
cmp eax, 1
jne 0x180025cbd
movsxd r10, dword [rsp + 0x58]
mov rax, r10
mov rcx, r10
sar rax, 1
movsxd r9, dword [rbp + r10*4 + 0x10]
movsxd rax, dword [rbp + rax*4 + 0x10]
mov r8d, dword [rbp + r9*4 + 0x4d0]
cmp r8d, dword [rbp + rax*4 + 0x4d0]
jge 0x180025cae
nop dword [rax]
mov rax, rcx
sar r10d, 1
sar rax, 1
mov eax, dword [rbp + rax*4 + 0x10]
mov dword [rbp + rcx*4 + 0x10], eax
movsxd rcx, r10d
mov rax, rcx
sar rax, 1
movsxd rax, dword [rbp + rax*4 + 0x10]
cmp r8d, dword [rbp + rax*4 + 0x4d0]
jl 0x180025c80
mov dword [rsp + 0x58], r10d
movsxd rax, r10d
mov dword [rbp + rax*4 + 0x10], r9d
jmp 0x180025cbd
mov dword [rsp + 0x58], r14d
inc edx
cmp edx, 0xff
jb 0x180025c41
jmp 0x180025f35
dec r14d
mov ecx, 8
dec rbx
nop dword [rax + rax]
mov eax, ecx
sub eax, 7
je 0x180025d8d
cmp eax, 1
jne 0x180025d9a
mov r10d, eax
mov dword [rsp + 0x5c], eax
movsxd rax, dword [rbp + 0x14]
lea r9, [rbp + 0x4d0]
mov dword [rsp + 0x64], eax
lea r9, [r9 + rax*4]
nop
mov r8d, 0x51
mov eax, r8d
sub eax, 0x4f
je 0x180025d7a
sub eax, 1
je 0x180025d38
cmp eax, 1
jne 0x180025d82
lea r12d, [r10 + r10]
cmp r12d, r14d
jle 0x180025d82
mov ecx, 8
jmp 0x180025d9a
cmp r12d, r14d
jge 0x180025d5d
movsxd rax, r12d
movsxd rdx, dword [rbp + rax*4 + 0x14]
movsxd rax, dword [rbp + rax*4 + 0x10]
mov ecx, dword [rbp + rax*4 + 0x4d0]
cmp dword [rbp + rdx*4 + 0x4d0], ecx
jge 0x180025d5d
inc r12d
movsxd rax, r12d
movsxd rdx, dword [rbp + rax*4 + 0x10]
mov ecx, dword [rbp + rdx*4 + 0x4d0]
cmp dword [r9], ecx
jl 0x180025d31
movsxd rax, r10d
mov dword [rbp + rax*4 + 0x10], edx
jmp 0x180025d82
mov r10d, r12d
mov dword [rsp + 0x5c], r12d
dec r8d
cmp r8d, 0x4e
ja 0x180025d16
jmp 0x180025d10
movsxd rax, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x64]
mov dword [rbp + rax*4 + 0x10], edx
dec ecx
cmp ecx, 6
ja 0x180025ce0
inc esi
movsxd rax, r13d
inc rdi
lea rcx, [rax*4]
movsxd rax, dword [rsp + 0x68]
mov r9d, dword [rbp + rcx + 0x4d0]
mov dword [rbp + rcx + 0xce0], esi
mov r8d, dword [rbp + rax*4 + 0x4d0]
mov ecx, r8d
cmp r8b, r9b
mov dword [rbp + rax*4 + 0xce0], esi
cmovbe ecx, r9d
and r9d, 0xffffff00
and r8d, 0xffffff00
movzx eax, cl
inc eax
add r9d, r8d
or eax, r9d
mov dword [rbp + rdi*4 + 0x4d0], eax
jmp 0x180025f35
mov r13d, dword [rbp + 0x14]
mov eax, dword [rbp + rbx*4 + 0x10]
mov dword [rbp + 0x14], eax
jmp 0x180025f35
mov eax, dword [rbp + 0x14]
dec r14d
mov dword [rsp + 0x68], eax
mov ecx, 0x11b
mov eax, dword [rbp + rbx*4 + 0x10]
dec rbx
mov dword [rbp + 0x14], eax
mov eax, ecx
sub eax, 0x119
je 0x180025f18
sub eax, 1
je 0x180025f11
cmp eax, 1
jne 0x180025f27
mov ecx, eax
mov dword [rbp + 0x1550], eax
movsxd rax, dword [rbp + 0x14]
lea r10, [rbp + 0x4d0]
mov dword [rsp + 0x6c], eax
lea r10, [r10 + rax*4]
nop word [rax + rax]
mov r8d, 0x14
mov eax, r8d
sub eax, 0x12
je 0x180025ee8
sub eax, 1
je 0x180025ecc
cmp eax, 1
jne 0x180025eff
lea r15d, [rcx + rcx]
mov dword [rsp + 0x48], r15d
cmp r15d, r14d
jg 0x180025f11
jge 0x180025eff
movsxd rax, r15d
lea r9d, [r15 + 1]
movsxd rdx, dword [rbp + rax*4 + 0x14]
movsxd rax, r15d
movsxd rcx, dword [rbp + rax*4 + 0x10]
mov eax, dword [rbp + rcx*4 + 0x4d0]
mov ecx, dword [rbp + 0x1550]
cmp dword [rbp + rdx*4 + 0x4d0], eax
jge 0x180025eff
mov r15d, r9d
mov dword [rsp + 0x48], r9d
jmp 0x180025eff
movsxd rax, r15d
movsxd rcx, dword [rbp + rax*4 + 0x10]
mov eax, dword [rbp + rcx*4 + 0x4d0]
cmp dword [r10], eax
jl 0x180025f11
mov ecx, dword [rbp + 0x1550]
jmp 0x180025eff
movsxd rcx, ecx
movsxd rax, r15d
mov eax, dword [rbp + rax*4 + 0x10]
mov dword [rbp + rcx*4 + 0x10], eax
mov ecx, r15d
mov dword [rbp + 0x1550], ecx
dec r8d
cmp r8d, 0x11
ja 0x180025e76
jmp 0x180025e70
mov ecx, 0x11a
jmp 0x180025f27
movsxd rax, dword [rbp + 0x1550]
mov edx, dword [rsp + 0x6c]
mov dword [rbp + rax*4 + 0x10], edx
dec ecx
cmp ecx, 0x118
ja 0x180025e30
add r11d, 0x10
cmp r11d, 0xa6
jb 0x180025c00
mov dword [rsp + 0x70], r13d
mov dword [rsp + 0x4c], esi
cmp r14d, 1
jg 0x180025bf0
mov r13d, dword [rsp + 0x44]
mov edi, dword [rsp + 0x30]
jmp 0x180025f68
mov esi, dword [rsp + 0x4c]
cmp esi, 0x204
jl 0x180026044
xor r8d, r8d
mov dword [rsp + 0x50], 0x7d2
lea rcx, [rsp + 0x50]
lea edx, [r8 + 0x56]
call fcn.18005c8d0
jmp 0x180026044
mov esi, dword [r11]
mov edi, 1
cmp esi, edi
jl 0x180026040
lea rax, [rbp + 0x10]
mov r8d, esi
shl r8, 2
lea edx, [rdi - 2]
lea rcx, [rbp + 0xce4]
lea rbx, [rax + rbx*4]
call fcn.18006bea0
lea rbx, [rbx + 4]
inc r14d
mov dword [rbx], edi
mov r8d, 0x23
nop
cmp r8d, 0x23
jne 0x180026030
movsxd r10, dword [rbx]
mov edx, r14d
movsxd rcx, r14d
mov rax, rcx
sar rax, 1
mov r9d, dword [rbp + r10*4 + 0x4d0]
movsxd rax, dword [rbp + rax*4 + 0x10]
cmp r9d, dword [rbp + rax*4 + 0x4d0]
jge 0x180026028
nop dword [rax]
mov rax, rcx
sar edx, 1
sar rax, 1
mov eax, dword [rbp + rax*4 + 0x10]
mov dword [rbp + rcx*4 + 0x10], eax
movsxd rcx, edx
mov rax, rcx
sar rax, 1
movsxd rax, dword [rbp + rax*4 + 0x10]
cmp r9d, dword [rbp + rax*4 + 0x4d0]
jl 0x180026000
movsxd rax, edx
mov dword [rbp + rax*4 + 0x10], r10d
add r8d, 0x5a
cmp r8d, 0x7d
jb 0x180025fd0
inc edi
cmp edi, esi
jle 0x180025fc0
mov edi, dword [rsp + 0x30]
xor ebx, ebx
mov r11, qword [rbp + 0x1560]
add edi, 0x98
mov dword [rsp + 0x30], edi
mov esi, 1
cmp edi, 0x379
jb 0x180025a70
jmp 0x180025a61
mov eax, dword [r11]
mov r14d, ebx
mov dword [rsp + 0x4c], eax
mov dword [rbp + 0x10], ebx
mov dword [rbp + 0x4d0], ebx
mov dword [rbp + 0xce0], 0xfffffffe
jmp 0x180026046
mov r8, qword [rsp + 0x78]
xor r9d, r9d
xor edx, edx
mov ecx, 0xcb
call fcn.180039420
jmp 0x1800261eb
lea rax, [r10 + 0xf]
cmp r10, rcx
ja 0x1800260d7
cmp rax, rdx
jb 0x1800260d7
mov r8, rdx
mov rcx, r10
sub r8, r10
mov edx, 0x10
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1800260c1
jmp 0x1800261eb
movdqu xmm0, xmmword [r10]
movdqu xmm1, xmmword [0x180096f30]
pxor xmm1, xmm0
movdqu xmmword [r10], xmm1
jmp 0x1800261eb
lea rdx, [rbp - 0x68]
mov qword [rbp - 0x68], 0x400
mov ecx, 0xba
call fcn.180062a50
mov qword [rsp + 0x78], rax
jmp 0x1800261eb
cmp esi, 0x1c4
je 0x1800261d1
cmp esi, 0x254
je 0x18002619b
cmp esi, 0x374
je 0x180026172
cmp esi, 0x404
je 0x18002615a
cmp esi, 0x494
jne 0x1800261eb
mov r8, qword [rbp - 0x48]
xor r9d, r9d
xor edx, edx
mov ecx, 0xcb
call fcn.180039420
jmp 0x1800261eb
mov r8, qword [rbp - 0x58]
xor r9d, r9d
xor edx, edx
mov ecx, 0xcb
call fcn.180039420
jmp 0x1800261eb
mov r8, qword [rsp + 0x78]
xor r9d, r9d
xor edx, edx
mov ecx, 0xcb
call fcn.180039420
mov r8, qword [rbp - 0x38]
xor r9d, r9d
xor edx, edx
mov ecx, 0xcb
call fcn.180039420
jmp 0x1800261eb
lea rdx, [rbp - 0x60]
mov qword [rbp - 0x60], 0x400
mov ecx, 0xba
call fcn.180062a50
lea rdx, [rbp - 0x50]
mov qword [rbp - 0x58], rax
mov ecx, 0xba
mov qword [rbp - 0x50], 0x400
call fcn.180062a50
mov qword [rbp - 0x48], rax
jmp 0x1800261eb
lea rdx, [rbp - 0x40]
mov qword [rbp - 0x40], 0x400
mov ecx, 0xba
call fcn.180062a50
mov qword [rbp - 0x38], rax
mov r10, qword [rbp + 0x1558]
lea rdx, [0x180096f30]
add esi, 0x90
lea rcx, [0x180096f3f]
cmp esi, ebx
jb 0x1800258b0
mov rax, qword [rsp + 0x38]
add rsp, 0x15f8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret