Function at 0x10017a49c
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
mov rax, qword [0x1004946a0]
xor rax, rsp
mov qword [rsp + 0xa8], rax
lea r13, [0x100000000]
lea rax, [rcx + 0x18]
mov qword [rsp + 0x80], rcx
lea r8, section..data
mov r14d, 0xfffffff
mov qword [rsp + 0x90], rax
mov rax, qword [rax]
mov r15d, dword [rax + 5]
mov ecx, dword [rax + 9]
lea r9, [rax + 0xd]
mov r12d, dword [rax + 1]
and r12, r14
and rcx, r14
and r15, r14
lea rdi, [r9 - 1]
add r12, r13
xor ebp, ebp
mov qword [rsp + 0x70], rdx
cmp rdi, r8
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x88], r15
jb 0x10017a569
mov ecx, dword [0x10005e244]
mov eax, dword [0x1002f3aa4]
imul ecx, eax
mov eax, ecx
add rax, r8
cmp rdi, rax
jae 0x10017a569
mov ecx, dword [0x1002f3aa4]
mov rax, rdi
sub rax, r8
cqo
idiv rcx
mov edx, dword [0x1002f3aa4]
imul rdx, rax
add r8, rdx
jmp 0x10017a56c
mov r8, rbp
cmp r8, rbp
jne 0x10017a57b
mov r8, rdi
and r8, 0xffffffffffff0000
sub r9, r8
lea rax, [r9 - 0x40]
cmp rax, rbp
cmovl rax, rbp
lea rdi, [rax + r8]
mov ebx, r12d
sub ebx, r13d
xor eax, eax
lea ecx, [rax + 0x40]
mov dword [rsp + 0x20], ebx
rep stosb byte [rdi], al
mov edi, dword [0x1002f3aa4]
sub rdi, r15
add rdi, 1
mov r9, rdi
cmp rdi, rbp
je 0x10017a5e6
mov rcx, qword [0x100495210]
imul rcx, rcx, 0x343fd
shl rax, 0x10
add rcx, 0x269ec3
mov rdx, rcx
shr rdx, 0x10
movzx edx, dx
or rax, rdx
shr r9, 0x10
jne 0x10017a5ba
mov qword [0x100495210], rcx
mov ecx, ebx
xor edx, edx
div rdi
lea rsi, [rdx + r8]
mov rdx, r15
mov r8, rsi
mov qword [rsp + 0x68], rsi
mov eax, 0x5e35a353
lea rcx, [rsp + 0x60]
mov dil, bpl
mov rdx, qword [r12 + r15]
mov qword [rsp + 0x60], rdx
mov eax, 0xff951c16
mov rcx, r13
mov r11, qword [rsp + 0x60]
mov rax, qword [0x1003f4900]
mov r8d, dword [rsp + 0x64]
and r11, r14
mov qword [rsp + 0x38], rbp
and r8, r14
mov r14d, 4
add r11, r13
sub rcx, rax
mov qword [rsp + 0x48], rcx
jne 0x10017a6c8
mov r10, rbp
cmp r8, rbp
jbe 0x10017a9ee
mov ecx, dword [rsp + 0x3c]
mov r9d, dword [rsp + 0x38]
movzx eax, byte [r10 + r11]
add r10, 1
add eax, 0x2a318641
add r9d, eax
add eax, ecx
imul eax, eax, 0x2a318641
ror eax, 0x10
imul rax, rax, 0x2a318641
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x2a318641
ror ecx, 0x10
add r9d, ecx
cmp r10, r8
jb 0x10017a65e
mov dword [rsp + 0x3c], ecx
mov dword [rsp + 0x38], r9d
jmp 0x10017a9ee
movsxd rcx, dword [0x10000003c]
mov edx, dword [rcx + r13 + 0xb4]
mov r9d, dword [rcx + r13 + 0xb0]
lea rax, [r11 + r8]
add r9, r13
mov qword [rsp + 0x40], rax
mov eax, r11d
sub eax, r13d
mov ecx, eax
lea rbp, [r8 + rcx]
mov rbx, rcx
mov r13, rbp
mov r10d, eax
lea rcx, [rdx + r9]
mov rax, 0xfffffffffffff000
mov qword [rsp + 0x28], rcx
and r10, rax
sub rbx, r10
and r13, rax
sub rbp, r13
mov qword [rsp + 0x58], rbp
jmp 0x10017a732
mov eax, dword [r9]
cmp rax, r10
jae 0x10017a737
mov eax, dword [r9 + 4]
add r9, rax
cmp r9, rcx
jne 0x10017a723
xor esi, esi
cmp r9, rcx
je 0x10017a771
mov eax, dword [r9]
cmp rax, r10
jne 0x10017a771
mov ecx, dword [r9 + 4]
sub rcx, 8
shr rcx, 1
je 0x10017a76c
mov ax, word [r9 + rsi*2 + 8]
and eax, 0xfff
cmp rax, rbx
jae 0x10017a76c
add rsi, 1
cmp rsi, rcx
jne 0x10017a753
mov rcx, qword [rsp + 0x28]
mov r8d, dword [rsp + 0x3c]
mov r12, qword [rsp + 0x48]
mov r10d, dword [rsp + 0x38]
cmp r9, rcx
je 0x10017a959
mov eax, dword [r9]
cmp rax, r13
ja 0x10017a959
mov edx, dword [r9 + 4]
lea rax, [rdx - 8]
shr rax, 1
cmp rsi, rax
jne 0x10017a7c1
add r9, rdx
cmp r9, rcx
je 0x10017a959
mov eax, dword [r9]
cmp rax, r13
ja 0x10017a959
xor esi, esi
jmp 0x10017a795
mov eax, dword [r9]
cmp rax, r13
jne 0x10017a7dd
mov ax, word [r9 + rsi*2 + 8]
and eax, 0xfff
cmp rax, rbp
jae 0x10017a959
mov rax, rsi
add rsi, 1
test word [r9 + rax*2 + 8], 0xf000
je 0x10017a780
movzx ebx, word [r9 + rax*2 + 8]
xor edi, edi
mov ebp, ebx
and ebp, 0xfff
add ebp, dword [r9]
lea rax, [0x100000000]
add rbp, rax
mov rax, rbp
sub rax, r11
je 0x10017a883
mov r15, rax
movzx eax, byte [r11 + rdi]
add rdi, 1
add eax, 0x2a318641
add r10d, eax
add eax, r8d
imul eax, eax, 0x2a318641
ror eax, 0x10
imul rax, rax, 0x2a318641
mov qword [rsp + 0x50], rax
mov ecx, dword [rsp + 0x50]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r8d, edx
sar r8d, 0x1f
btr r8d, 0x1f
add r8d, edx
imul r8d, r8d, 0x2a318641
ror r8d, 0x10
add r10d, r8d
cmp rdi, r15
jb 0x10017a816
mov dword [rsp + 0x3c], r8d
mov dword [rsp + 0x38], r10d
shr ebx, 0xc
mov rax, qword [rbp]
cmp ebx, 3
mov qword [rsp + 0x50], rax
je 0x10017a8a0
sub ebx, 0xa
neg ebx
sbb edx, edx
add edx, 3
jmp 0x10017a8a5
mov edx, 2
mov r11, r12
neg r11
sub edx, 2
je 0x10017a8cb
cmp edx, 1
je 0x10017a8bb
or r11, 0xffffffffffffffff
jmp 0x10017a8d3
add rax, r11
mov r11d, 8
mov qword [rsp + 0x50], rax
jmp 0x10017a8d3
add dword [rsp + 0x50], r11d
mov r11, r14
xor ebx, ebx
test r11, r11
je 0x10017a947
movzx eax, byte [rsp + rbx + 0x50]
add rbx, 1
add eax, 0x2a318641
add r10d, eax
add eax, r8d
imul eax, eax, 0x2a318641
ror eax, 0x10
imul rax, rax, 0x2a318641
mov qword [rsp + 0x48], rax
mov ecx, dword [rsp + 0x48]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r8d, edx
sar r8d, 0x1f
btr r8d, 0x1f
add r8d, edx
imul r8d, r8d, 0x2a318641
ror r8d, 0x10
add r10d, r8d
cmp rbx, r11
jb 0x10017a8da
mov dword [rsp + 0x3c], r8d
mov dword [rsp + 0x38], r10d
add r11, rbp
mov rbp, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x28]
jmp 0x10017a780
xor ebp, ebp
mov rbx, qword [rsp + 0x40]
mov r12, qword [rsp + 0x78]
mov r15, qword [rsp + 0x88]
mov dil, bpl
sub rbx, r11
mov r9, rbp
je 0x10017a9e5
movzx eax, byte [r9 + r11]
add r9, 1
add eax, 0x2a318641
add r10d, eax
add eax, r8d
imul eax, eax, 0x2a318641
ror eax, 0x10
imul rax, rax, 0x2a318641
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r8d, edx
sar r8d, 0x1f
btr r8d, 0x1f
add r8d, edx
imul r8d, r8d, 0x2a318641
ror r8d, 0x10
add r10d, r8d
cmp r9, rbx
jb 0x10017a978
mov dword [rsp + 0x3c], r8d
mov dword [rsp + 0x38], r10d
mov ebx, dword [rsp + 0x20]
mov rsi, qword [rsp + 0x68]
mov rcx, rbp
mov al, cl
add rcx, 1
and eax, 7
mov al, byte [rsp + rax + 0x38]
mov byte [rsp + rcx + 0x9f], al
cmp rcx, 8
jb 0x10017a9f1
mov eax, 0x498d37b4
mov r11, rsi
mov rax, qword [rsp + 0xa0]
mov r13b, r15b
mov r8, r12
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x28], rsi
and r13d, 7
je 0x10017af22
xor r9d, r9d
mov ebp, ebx
not ebp
xor ebx, ebx
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x58], r9d
xor r11d, r11d
test r13d, r13d
jle 0x10017aa8d
lea r10d, [r9 + 0x38]
cmp r11d, r14d
movzx edx, byte [r8]
jge 0x10017aa66
lea ecx, [r10 - 0x20]
shl edx, cl
or ebx, edx
jmp 0x10017aa6e
mov ecx, r10d
shl edx, cl
or r9d, edx
add r11d, 1
add r8, 1
sub r10d, 8
cmp r11d, r13d
jl 0x10017aa53
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x58], r9d
mov qword [rsp + 0x48], r8
movzx r11d, word [rsp + 0xa2]
mov r8d, eax
movzx ebx, ax
movzx r9d, word [rsp + 0xa6]
movzx r10d, word [rsp + 0xa4]
mov esi, ebp
ror esi, 9
sub esi, ebx
mov ecx, r10d
imul esi, r11d
xor esi, dword [rsp + 0x20]
mov edx, esi
xor ecx, esi
ror edx, 1
imul ecx, r9d
xor edx, ecx
xor ebp, edx
mov dword [rsp + 0x20], ebp
mov edx, ebp
mov ecx, r10d
sub r8d, ebp
ror r8d, 0xd
rol edx, 0xf
mov ebp, dword [rsp + 0xa4]
xor ebp, eax
xor ebp, dword [rsp + 0x20]
imul ecx, r8d
sub ecx, edx
xor esi, ecx
xor ebp, esi
mov r8d, ebp
mov ecx, ebx
mov edx, ebp
sub r8d, dword [rsp + 0xa4]
ror r8d, 1
ror edx, 9
imul ecx, r8d
xor edx, ecx
mov r8d, eax
mov ecx, eax
xor esi, edx
mov edx, dword [rsp + 0xa4]
xor edx, esi
sub ecx, edx
xor ebp, ecx
mov edx, ebp
xor r8d, ebp
rol r8d, 2
mov ecx, r10d
rol edx, 5
imul ecx, r8d
sub ecx, edx
mov edx, r11d
xor esi, ecx
mov ecx, ebx
xor ecx, esi
rol ecx, 1
imul edx, ecx
mov ecx, esi
shr ecx, 6
add edx, ecx
xor ebp, edx
mov ecx, ebp
not ecx
ror ecx, 0xa
add ecx, ebx
imul ecx, r10d
xor esi, ecx
mov ecx, esi
sub ecx, r9d
xor ecx, eax
xor ebp, ecx
mov edx, ebp
mov ecx, r11d
xor ecx, ebp
ror edx, 0xa
imul ecx, r10d
add edx, ecx
xor esi, edx
mov ecx, esi
sub ecx, r11d
sub ecx, dword [rsp + 0xa4]
xor r9d, r9d
xor ebp, ecx
mov edx, ebp
sub edx, dword [rsp + 0xa4]
mov ecx, ebp
ror edx, 0xd
ror ecx, 9
imul ebx, edx
sub ebx, ecx
xor ebx, dword [rsp + 0x40]
xor esi, ebx
mov ebx, dword [rsp + 0x58]
xor ebp, ebx
test r13d, r13d
mov ecx, esi
mov edx, ebp
jle 0x10017abed
mov r8, qword [rsp + 0x28]
cmp r9d, r14d
jge 0x10017abd2
rol ecx, 8
mov byte [r8], cl
add r8, 1
xor dil, cl
jmp 0x10017abdf
rol edx, 8
mov byte [r8], dl
add r8, 1
xor dil, dl
add r9d, 1
cmp r9d, r13d
jl 0x10017abbe
mov qword [rsp + 0x28], r8
lea ecx, [r13 - 4]
test ecx, ecx
jle 0x10017af0a
sub r14d, ecx
shl r14d, 3
mov ecx, r14d
shr ebp, cl
shl ebp, cl
mov r11, qword [rsp + 0x28]
mov r8, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x40]
mov rcx, r15
shr rcx, 3
mov qword [rsp + 0x28], rcx
je 0x10017ae4a
movzx edx, ax
mov r15, qword [rsp + 0x28]
mov r13d, dword [rsp + 0xa4]
mov ecx, r13d
xor ecx, eax
mov dword [rsp + 0x20], edx
mov dword [rsp + 0x58], ecx
movzx ecx, r13w
mov r12d, dword [rsp + 0x58]
mov dword [rsp + 0x40], ecx
movzx r9d, byte [r8 + 4]
movzx r10d, byte [r8]
movzx ecx, byte [r8 + 1]
add r8, 8
shl r10d, 8
shl r9d, 8
or r10d, ecx
shl r10d, 8
movzx ecx, byte [r8 - 6]
mov qword [rsp + 0x48], r8
or r10d, ecx
movzx ecx, byte [r8 - 5]
shl r10d, 8
or r10d, ecx
movzx ecx, byte [r8 - 3]
or r9d, ecx
movzx ecx, byte [r8 - 2]
shl r9d, 8
or r9d, ecx
shl r9d, 8
movzx ecx, byte [r8 - 1]
or r9d, ecx
xor ebp, r9d
mov ecx, ebp
movzx r8d, word [rsp + 0xa6]
ror ecx, 9
sub ecx, edx
movzx edx, word [rsp + 0xa2]
imul ecx, edx
xor ecx, r10d
xor esi, ecx
mov edx, esi
mov ecx, dword [rsp + 0x40]
xor ecx, esi
ror edx, 1
imul ecx, r8d
mov r8d, eax
xor edx, ecx
xor ebp, edx
mov edx, ebp
sub r8d, ebp
mov ecx, dword [rsp + 0x40]
xor ebp, r12d
ror r8d, 0xd
rol edx, 0xf
imul ecx, r8d
sub ecx, edx
xor esi, ecx
xor ebp, esi
mov edx, ebp
mov r8d, ebp
sub r8d, r13d
mov ecx, dword [rsp + 0x20]
ror r8d, 1
ror edx, 9
imul ecx, r8d
xor edx, ecx
mov r8d, eax
mov ecx, eax
xor esi, edx
mov edx, r13d
xor edx, esi
sub ecx, edx
xor ebp, ecx
mov ecx, dword [rsp + 0x40]
mov edx, ebp
xor r8d, ebp
rol r8d, 2
rol edx, 5
imul ecx, r8d
sub ecx, edx
xor esi, ecx
mov r8d, dword [rsp + 0x20]
mov ecx, r8d
xor ecx, esi
rol ecx, 1
movzx edx, word [rsp + 0xa2]
imul edx, ecx
mov ecx, esi
shr ecx, 6
add edx, ecx
xor ebp, edx
mov ecx, ebp
not ecx
movzx edx, word [rsp + 0xa6]
ror ecx, 0xa
add ecx, r8d
mov r8d, dword [rsp + 0x40]
imul ecx, r8d
xor esi, ecx
mov ecx, esi
sub ecx, edx
xor ecx, eax
xor ebp, ecx
mov edx, ebp
movzx ecx, word [rsp + 0xa2]
xor ecx, ebp
ror edx, 0xa
imul ecx, r8d
add edx, ecx
xor esi, edx
movzx edx, word [rsp + 0xa2]
mov ecx, esi
sub ecx, edx
mov edx, dword [rsp + 0x20]
sub ecx, r13d
xor ebp, ecx
mov ecx, ebp
mov r8d, ebp
xor ebp, ebx
mov byte [r11 + 7], bpl
mov ebx, r9d
sub r8d, r13d
ror r8d, 0xd
ror ecx, 9
imul edx, r8d
sub edx, ecx
xor edx, r14d
mov r14d, r10d
mov r8, qword [rsp + 0x48]
xor esi, edx
mov edx, dword [rsp + 0x20]
xor dil, sil
mov byte [r11 + 3], sil
ror esi, 8
mov byte [r11 + 2], sil
xor dil, bpl
ror ebp, 8
mov byte [r11 + 6], bpl
xor dil, sil
ror esi, 8
mov byte [r11 + 1], sil
xor dil, bpl
ror ebp, 8
xor dil, sil
mov byte [r11 + 5], bpl
ror esi, 8
mov byte [r11], sil
xor dil, bpl
ror ebp, 8
mov byte [r11 + 4], bpl
mov cl, bpl
add r11, 8
xor cl, sil
xor dil, cl
ror esi, 8
ror ebp, 8
sub r15, 1
jne 0x10017ac52
mov r12, qword [rsp + 0x78]
mov r15, qword [rsp + 0x88]
cmp dil, byte [r15 + r12 + 8]
je 0x10017af44
call fcn.1002d3e40
lea r10, [0x1003e8888]
mov ebx, 0xffff
mov rsi, qword [rsp + 0x90]
mov r8, rsi
mov rbp, qword [rsp + 0x80]
mov qword [rbp + 0x10], r10
mov r11, rax
mov rcx, qword [0x100495210]
and r8, 0xfffffffffffffff8
mov rax, 0xfffffffffffff000
lea r9, [r8 + 0xfff]
and r11, rax
and r9, rax
xor edi, edi
imul rcx, rcx, 0x343fd
shl rdi, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or rdi, rdx
shr rbx, 0x10
jne 0x10017aea1
mov qword [0x100495210], rcx
movabs rax, 0x8000800080008001
mul rdi
shr rdx, 0xf
mov rax, qword [rsp + 0x70]
mov qword [rax + 0x98], r11
imul rdx, rdx, 0xffff
sub rdi, rdx
add rdi, 1
mov qword [rax + 0xb0], rdi
mov qword [rsp + 0x70], 0
jmp 0x10017af3a
xor ebp, ebp
test ecx, ecx
jns 0x10017ac07
neg ecx
shl ecx, 3
shr esi, cl
shl esi, cl
jmp 0x10017ac07
mov r14d, ebx
xor esi, esi
not ebx
jmp 0x10017ac16
mov rax, qword [rsp + 0x70]
mov qword [r8], rax
add r8, 8
cmp r8, r9
jb 0x10017af2e
jmp 0x10017b068
mov rax, qword [0x1003f4900]
mov rbp, qword [rsp + 0x68]
lea r14, [0x100000000]
mov rbx, r12
sub rbx, rbp
mov rsi, r14
sub rsi, rax
jne 0x10017af6e
test rbx, rbx
je 0x10017b042
mov r11, rbp
xor edi, edi
sub r11, r12
mov rcx, qword [0x1000016e8]
lea r8d, [rcx - 1]
sub r12d, r14d
lea r13d, [r15 + r12]
lea r15, [0x1000016e8]
test r8d, r8d
js 0x10017afc1
lea eax, [r8 + rdi]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r9d, dword [r15 + rdx*4 + 4]
and r9d, 0xfffffff
cmp r12d, r9d
jae 0x10017afb7
lea r8d, [rax - 1]
jmp 0x10017afbc
jbe 0x10017afc6
lea edi, [rax + 1]
cmp r8d, edi
jge 0x10017af94
movsxd r10, edi
jmp 0x10017b03b
movsxd r10, eax
jmp 0x10017b03b
mov edx, dword [r15 + r10*4 + 4]
mov eax, edx
and eax, 0xfffffff
cmp eax, r13d
jae 0x10017b042
mov edi, edx
mov r8, rdx
sar edx, 0x1e
shl edi, 2
and r8d, 0xfffffff
and edx, 3
sar edi, 0x1e
add r8, r14
xor r9d, r9d
and edi, 3
sub edi, 1
je 0x10017b016
sub edi, 1
je 0x10017b011
cmp edi, 1
jne 0x10017b01c
mov r9, rsi
jmp 0x10017b01c
mov r9, rbx
jmp 0x10017b01c
mov r9, rsi
sub r9, rbx
sub edx, 2
je 0x10017b02c
cmp edx, 1
jne 0x10017b037
add qword [r8 + r11], r9
jmp 0x10017b030
add dword [r8 + r11], r9d
mov rcx, qword [0x1000016e8]
add r10, 1
mov eax, ecx
cmp r10, rax
jb 0x10017afcb
mov eax, dword [0x1002f3aa4]
mov eax, 0x206eede0
mov rsi, qword [rsp + 0x90]
mov r10, qword [rsp + 0x98]
add r10, rbp
mov rbp, qword [rsp + 0x80]
mov qword [rbp + 0x10], r10
add qword [rsi], 0xd
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.1002d532c
mov rbx, qword [rsp + 0x100]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret