Function at 0x529350
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
sub rsp, 0x2e8
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov qword [rax - 8], rbx
mov qword [rax - 0x10], rbp
mov qword [rax - 0x18], rsi
mov qword [rax - 0x20], rdi
mov qword [rax - 0x28], r12
mov qword [rax - 0x30], r13
mov qword [rax - 0x38], r14
mov qword [rax - 0x40], r15
mov rax, qword [0x006443a8]
xor rax, rsp
mov qword [rsp + 0x290], rax
mov esi, r9d
movsxd r14, r8d
mov r13, rdx
mov r15, rcx
mov qword [rsp + 0x58], rdx
mov r12, qword [rsp + 0x318]
mov qword [rsp + 0x50], r12
xor edi, edi
mov dword [rsp + 0x30], edi
mov rbx, rdi
mov qword [rsp + 0x40], rdi
test r9d, r9d
je 0x529645
mov ebp, dword [rsp + 0x310]
lea r8d, [r9 + rbp]
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x4c]
lea rdx, [rsp + 0x38]
call fcn.00528bd0
nop
mov rcx, qword [rax]
test rcx, rcx
je 0x529404
mov rbx, rcx
add dword [rcx], 1
mov qword [rsp + 0x40], rcx
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x529426
add dword [rdi], 0xffffffff
cmp dword [rdi], 0
jne 0x529426
mov rcx, rdi
call fcn.0045f110
mov rcx, rdi
call fcn.00568830
test rbx, rbx
je 0x529465
mov eax, dword [rbx + 4]
test eax, eax
je 0x529465
test eax, 0xffff0000
jg 0x529465
add dword [rbx], 1
mov qword [r13], rbx
mov dword [rsp + 0x30], 1
add dword [rbx], 0xffffffff
jne 0x52945d
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
jmp 0x529b3d
mov eax, dword [rsp + 0x4c]
test eax, eax
jle 0x529643
add eax, esi
mov dword [rsp + 0x4c], eax
cmp eax, r14d
jl 0x52963f
mov r9d, r14d
neg r9d
xor esi, esi
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], esi
mov r8d, ebp
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.00528d50
mov rdi, rax
cmp rbx, qword [rax]
je 0x5294dd
test rbx, rbx
je 0x5294c3
add dword [rbx], 0xffffffff
jne 0x5294c3
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rbx, qword [rdi]
test rbx, rbx
je 0x5294d5
add dword [rbx], 1
mov qword [rsp + 0x40], rbx
jmp 0x5294dd
mov rbx, rsi
mov qword [rsp + 0x40], rsi
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x5294ff
add dword [rdi], 0xffffffff
cmp dword [rdi], 0
jne 0x5294ff
mov rcx, rdi
call fcn.0045f110
mov rcx, rdi
call fcn.00568830
test rbx, rbx
je 0x52953e
mov eax, dword [rbx + 4]
test eax, eax
je 0x52953e
test eax, 0xffff0000
jg 0x52953e
add dword [rbx], 1
mov qword [r13], rbx
mov dword [rsp + 0x30], 1
add dword [rbx], 0xffffffff
jne 0x529536
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
jmp 0x529b3d
mov r9d, dword [rsp + 0x4c]
cmp r14d, r9d
jge 0x52960d
lea r8d, [r14 + rbp]
lea eax, [r8 + 0x1000]
and eax, 0xfffff000
sub r9d, r14d
mov dword [rsp + 0x20], eax
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.00528e70
mov rdi, rax
cmp rbx, qword [rax]
je 0x5295ac
test rbx, rbx
je 0x529592
add dword [rbx], 0xffffffff
jne 0x529592
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rbx, qword [rdi]
test rbx, rbx
je 0x5295a4
add dword [rbx], 1
mov qword [rsp + 0x40], rbx
jmp 0x5295ac
mov rbx, rsi
mov qword [rsp + 0x40], rsi
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x5295ce
add dword [rdi], 0xffffffff
cmp dword [rdi], 0
jne 0x5295ce
mov rcx, rdi
call fcn.0045f110
mov rcx, rdi
call fcn.00568830
test rbx, rbx
je 0x52960d
mov eax, dword [rbx + 4]
test eax, eax
je 0x52960d
test eax, 0xffff0000
jg 0x52960d
add dword [rbx], 1
mov qword [r13], rbx
mov dword [rsp + 0x30], 1
add dword [rbx], 0xffffffff
jne 0x529605
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
jmp 0x529b3d
mov dword [r12], ebp
mov qword [r13], rsi
mov dword [rsp + 0x30], 1
test rbx, rbx
je 0x529637
add dword [rbx], 0xffffffff
jne 0x529637
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
jmp 0x529b3d
xor edi, edi
jmp 0x529645
xor edi, edi
mov ebp, edi
cmp dword [r15 + 0x98], 0
jbe 0x52994d
nop
nop
nop
lea edx, [rbp + 0x1000]
xor r8d, r8d
lea rcx, [r15 + 8]
call fcn.004bf9c0
mov r8d, 0x20
lea rdx, [rsp + 0x60]
lea rcx, [r15 + 8]
call fcn.004bf570
cmp eax, 0x20
jb 0x529916
mov eax, dword [rsp + 0x68]
cmp eax, r14d
jbe 0x529757
lea esi, [rbp + 0x20]
nop
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x48]
mov r8d, esi
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.00528bd0
mov rdi, rax
cmp rbx, qword [rax]
je 0x5296f9
test rbx, rbx
je 0x5296e0
add dword [rbx], 0xffffffff
jne 0x5296e0
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rbx, qword [rdi]
test rbx, rbx
je 0x5296f2
add dword [rbx], 1
mov qword [rsp + 0x40], rbx
jmp 0x5296f9
xor ebx, ebx
mov qword [rsp + 0x40], rbx
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x52971b
add dword [rdi], 0xffffffff
cmp dword [rdi], 0
jne 0x52971b
mov rcx, rdi
call fcn.0045f110
mov rcx, rdi
call fcn.00568830
test rbx, rbx
je 0x52972e
mov eax, dword [rbx + 4]
test eax, eax
je 0x52972e
test eax, 0xffff0000
jle 0x52976b
mov ecx, dword [rsp + 0x48]
cmp ecx, r14d
jge 0x529797
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
add esi, eax
mov eax, dword [rsp + 0x68]
test ecx, ecx
je 0x529755
cmp esi, eax
mov edi, 0
jb 0x5296a0
xor edi, edi
add ebp, eax
cmp ebp, dword [r15 + 0x98]
jae 0x52994d
jmp 0x529660
add dword [rbx], 1
mov qword [r13], rbx
mov dword [rsp + 0x30], 1
add dword [rbx], 0xffffffff
jne 0x52978f
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
jmp 0x529b3d
lea r8d, [rsi + rbp]
mov rsi, qword [rsp + 0x50]
mov dword [rsi], r8d
mov r9d, r14d
neg r9d
xor r12d, r12d
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], r12d
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.00528d50
mov rdi, rax
cmp rbx, qword [rax]
je 0x5297ff
test rbx, rbx
je 0x5297e5
add dword [rbx], 0xffffffff
jne 0x5297e5
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rbx, qword [rdi]
test rbx, rbx
je 0x5297f7
add dword [rbx], 1
mov qword [rsp + 0x40], rbx
jmp 0x5297ff
mov rbx, r12
mov qword [rsp + 0x40], r12
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x529821
add dword [rdi], 0xffffffff
cmp dword [rdi], 0
jne 0x529821
mov rcx, rdi
call fcn.0045f110
mov rcx, rdi
call fcn.00568830
test rbx, rbx
je 0x529860
mov eax, dword [rbx + 4]
test eax, eax
je 0x529860
test eax, 0xffff0000
jg 0x529860
add dword [rbx], 1
mov qword [r13], rbx
mov dword [rsp + 0x30], 1
add dword [rbx], 0xffffffff
jne 0x529858
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
jmp 0x529b3d
mov r9d, dword [rsp + 0x48]
cmp r14d, r9d
jge 0x5298e8
mov ecx, dword [rsp + 0x68]
add ecx, ebp
sub r9d, r14d
mov eax, dword [rsi]
lea r8d, [r14 + rax]
mov dword [rsp + 0x20], ecx
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.00528e70
mov rdi, rax
cmp rbx, qword [rax]
je 0x5298c6
test rbx, rbx
je 0x5298ac
add dword [rbx], 0xffffffff
jne 0x5298ac
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rbx, qword [rdi]
test rbx, rbx
je 0x5298be
add dword [rbx], 1
mov qword [rsp + 0x40], rbx
jmp 0x5298c6
mov rbx, r12
mov qword [rsp + 0x40], r12
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x5298e8
add dword [rdi], 0xffffffff
cmp dword [rdi], 0
jne 0x5298e8
mov rcx, rdi
call fcn.0045f110
mov rcx, rdi
call fcn.00568830
mov qword [r13], r12
mov dword [rsp + 0x30], 1
test rbx, rbx
je 0x52990e
add dword [rbx], 0xffffffff
jne 0x52990e
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
jmp 0x529b3d
mov edx, 0xea9d0003
mov rcx, r13
call fcn.00493010
mov dword [rsp + 0x30], 1
test rbx, rbx
je 0x529945
add dword [rbx], 0xffffffff
jne 0x529945
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
jmp 0x529b3d
lea ebp, [r14 + 0x101f]
and ebp, 0xfffff000
mov r12d, ebp
mov ecx, ebp
call fcn.0053ce20
mov rsi, rax
mov r8d, ebp
xor edx, edx
mov rcx, rax
call fcn.0056a100
mov dword [rsi], 0x6e696268
mov ecx, dword [r15 + 0x98]
mov dword [rsi + 4], ecx
mov dword [rsi + 8], ebp
mov ecx, r14d
neg ecx
mov dword [rsi + 0x20], ecx
lea ecx, [rbp - 0x20]
mov dword [rsp + 0x48], ecx
cmp ecx, r14d
jle 0x5299a3
sub ecx, r14d
mov dword [r14 + rsi + 0x20], ecx
mov edx, dword [r15 + 0x98]
add edx, 0x1000
xor r8d, r8d
lea rcx, [r15 + 8]
call fcn.004bf9c0
mov r8, r12
mov rdx, rsi
lea rcx, [r15 + 8]
call fcn.004bf6f0
cmp eax, ebp
jae 0x529a06
mov edx, 0xea9d0004
mov rcx, r13
call fcn.00493010
mov dword [rsp + 0x30], 1
test rbx, rbx
je 0x5299fe
add dword [rbx], 0xffffffff
jne 0x5299fe
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
jmp 0x529b3d
mov eax, dword [r15 + 0x98]
add eax, 0x20
mov rsi, qword [rsp + 0x50]
mov dword [rsi], eax
xor r8d, r8d
xor edx, edx
lea rcx, [r15 + 8]
call fcn.004bf9c0
mov r8d, 0x200
lea rdx, [rsp + 0x90]
lea rcx, [r15 + 8]
call fcn.004bf570
cmp eax, 0x200
jae 0x529a7a
mov edx, 0xea9d0003
mov rcx, r13
call fcn.00493010
mov dword [rsp + 0x30], 1
test rbx, rbx
je 0x529a72
add dword [rbx], 0xffffffff
jne 0x529a72
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
jmp 0x529b3d
add dword [r15 + 0x98], ebp
mov eax, dword [r15 + 0x98]
mov dword [rsp + 0xb8], eax
lea rax, [rsp + 0x90]
xor edx, edx
mov r8d, 0x7f
nop
xor edx, dword [rax]
add rax, 4
sub r8, 1
jne 0x529aa0
mov dword [rsp + 0x28c], edx
xor edx, edx
lea rcx, [r15 + 8]
call fcn.004bf9c0
mov r8d, 0x200
lea rdx, [rsp + 0x90]
lea rcx, [r15 + 8]
call fcn.004bf6f0
cmp eax, 0x200
jae 0x529b10
mov edx, 0xea9d0004
mov rcx, r13
call fcn.00493010
mov dword [rsp + 0x30], 1
test rbx, rbx
je 0x529b0b
add dword [rbx], 0xffffffff
jne 0x529b0b
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
jmp 0x529b3d
mov qword [r13], 0
mov dword [rsp + 0x30], 1
test rbx, rbx
je 0x529b3a
add dword [rbx], 0xffffffff
jne 0x529b3a
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
mov rax, r13
mov rcx, qword [rsp + 0x290]
xor rcx, rsp
call fcn.00568fb0
mov rbx, qword [rsp + 0x2e0]
mov rbp, qword [rsp + 0x2d8]
mov rsi, qword [rsp + 0x2d0]
mov rdi, qword [rsp + 0x2c8]
mov r12, qword [rsp + 0x2c0]
mov r13, qword [rsp + 0x2b8]
mov r14, qword [rsp + 0x2b0]
mov r15, qword [rsp + 0x2a8]
add rsp, 0x2e8
ret