Function at 0x7c003530
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x130
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xa8], 0x4ac7
mov dword [rbp + 0xa4], 0x7de2
mov rax, qword [rbp + 0xa8]
add rax, 0xffffffffffffef79
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0xa8]
add rax, 0x346b
mov qword [rbp - 0x18], rax
mov rax, qword [rbp + 0x38]
mov r8, rax
sub r8, r8
mov qword [rbp + 0x38], r8
mov qword [rbp - 0x10], 0x751c
mov dword [rbp + 0x94], ecx
mov dword [rbp + 0x74], edx
mov dword [rbp - 0x34], edx
mov dword [rbp - 0x38], ecx
mov qword [rbp - 0x40], rax
call fcn.7c003440
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0x68]
mov rcx, rax
call fcn.7c0024b0
mov edx, 0x7de2
mov r9d, 0x7a28
mov ecx, r9d
mov r9d, 0xfdcf
mov r10d, 0x7c2
mov r11d, dword [rbp + 0x34]
mov dword [rbp + 0x34], r11d
add rax, 0x18
mov dword [rbp + 0x34], r11d
mov qword [rbp + 0x48], rax
mov qword [rbp - 0x48], rcx
mov ecx, r10d
mov r10d, r11d
shl r10d, cl
mov dword [rbp + 0x34], r10d
mov r10d, dword [rbp + 0xa4]
mov rax, qword [rbp + 0x68]
sub r9d, r10d
mov dword [rbp + 0x34], r9d
mov r8, qword [rbp + 0x48]
mov r9d, dword [rbp + 0xa4]
add r9d, 0xffffe18f
mov r10d, r11d
and r10d, r9d
mov r9d, dword [r8 + 0x70]
mov r8d, r9d
mov dword [rbp + 0x34], r10d
mov rcx, qword [rbp - 0x48]
mov rsi, qword [rbp - 0x40]
shl rsi, cl
mov qword [rbp + 0x38], rsi
add rax, r8
mov qword [rbp - 0x20], rax
mov rax, qword [rbp + 0xa8]
add rax, 0xfffffffffffffee5
mov r8, qword [rbp + 0x48]
mov rcx, qword [rbp - 0x40]
shl rax, cl
mov qword [rbp + 0x38], rax
mov r9d, dword [r8 + 0x74]
mov dword [rbp + 0x44], r9d
mov rax, qword [rbp + 0xa8]
add rax, 0x1f37
mov r8, qword [rbp - 0x40]
imul r8, rax
mov qword [rbp + 0x38], r8
mov dword [rbp + 0x84], 0xffffffff
mov rax, qword [rbp + 0x68]
mov r8, qword [rbp - 0x40]
mov qword [rbp + 0x38], r8
mov rsi, qword [rbp - 0x20]
mov ecx, dword [rbp - 0x34]
mov r9d, r11d
shr r9d, cl
mov r10d, dword [rsi + 0x20]
mov dword [rbp + 0x34], r9d
mov r9d, r10d
mov esi, r9d
mov qword [rbp + 0x38], 0x6bf6
add rax, rsi
mov qword [rbp + 8], rax
mov rax, qword [rbp - 0x20]
mov r9d, dword [rax + 0x24]
mov eax, r9d
mov rdi, qword [rbp + 0x68]
add rdi, rax
mov qword [rbp - 8], rdi
mov qword [rbp + 0x38], r8
sub edx, dword [rbp + 0xa4]
mov dword [rbp + 0x5c], edx
mov dword [rbp - 0x4c], r11d
mov qword [rbp - 0x58], rsi
mov eax, 0x5779
mov ecx, eax
sub rcx, qword [rbp + 0xa8]
mov qword [rbp + 0x38], rcx
cmp qword [rbp + 0x60], 0x635e
ja 0x7c003a18
mov rax, qword [rbp - 0x40]
and rax, 0x2f2c
mov ecx, dword [rbp + 0xa4]
add ecx, 0xffff8f90
mov edx, dword [rbp + 0x5c]
mov qword [rbp + 0x38], rax
mov rax, qword [rbp - 0x20]
mov dword [rbp + 0x34], ecx
cmp edx, dword [rax + 0x18]
jae 0x7c0039c5
mov eax, 0x2bf1
mov ecx, eax
mov rdx, qword [rbp + 0xa8]
xor rdx, 0x293
mov r8, qword [rbp + 0xa8]
mov r9, qword [rbp + 0x60]
xor r8, 0x4dae
sub r9, r8
mov r8, qword [rbp - 0x40]
imul rdx, r8
mov r10, qword [rbp + 0x68]
mov qword [rbp + 0x38], rdx
mov qword [rbp + 0x28], r10
mov eax, dword [rbp + 0x5c]
mov edx, eax
shl rdx, 2
add rdx, qword [rbp + 8]
mov qword [rbp + 0x10], rdx
mov eax, dword [rbp - 0x38]
mov r11d, dword [rbp - 0x34]
imul eax, r11d
mov dword [rbp + 0x34], eax
cmp rcx, r9
je 0x7c003ad9
mov dword [rbp + 0x34], 0x1c024fb8
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0x38], 0x220
mov ecx, dword [rbp - 0x4c]
mov edx, dword [rbp - 0x34]
sub ecx, edx
mov r8d, dword [rax]
mov dword [rbp + 0x34], ecx
mov rax, qword [rbp + 0x28]
mov ecx, r8d
mov r9d, ecx
mov r10, qword [rbp - 0x40]
mov qword [rbp + 0x38], r10
add rax, r9
mov qword [rbp], rax
mov rcx, qword [rbp]
mov edx, dword [rbp + 0x74]
call fcn.7c002170
mov edx, dword [rbp - 0x34]
mov r8d, dword [rbp - 0x38]
sub edx, r8d
mov r11d, dword [rbp + 0x94]
mov dword [rbp + 0x34], edx
cmp eax, r11d
jne 0x7c003894
mov eax, 0x6178
mov ecx, eax
mov rdx, qword [rbp - 0x10]
sub rdx, 0x28da
mov eax, dword [rbp - 0x4c]
and eax, eax
mov dword [rbp + 0x34], eax
mov qword [rbp + 0x98], rdx
mov rdx, qword [rbp - 0x40]
sub rdx, 0x1db2
mov qword [rbp + 0x38], rdx
mov rdx, qword [rbp - 8]
mov qword [rbp + 0x20], rdx
mov rdx, qword [rbp - 0x40]
xor rdx, 0x4f9b
mov qword [rbp + 0x38], rdx
mov rdx, qword [rbp - 0x10]
sub rdx, 0x7027
cmp rcx, rdx
jb 0x7c003866
mov eax, 0x74f4
mov ecx, eax
cmp rcx, qword [rbp + 0x98]
jbe 0x7c0037ff
mov rax, qword [rbp + 0x20]
mov cx, word [rax]
mov rax, qword [rbp - 0x40]
xor rax, 0xffffffffffffffff
mov qword [rbp + 0x38], rax
movzx edx, cx
mov dword [rbp + 0x84], edx
mov edx, dword [rbp - 0x34]
mov r8d, dword [rbp - 0x4c]
and edx, r8d
mov dword [rbp + 0x34], edx
jmp 0x7c0039c5
mov eax, 0x53e9
mov ecx, eax
mov eax, 0x3732
mov edx, eax
mov eax, 0x4ac5
mov r8d, eax
mov r9, qword [rbp + 0xa8]
mov r10, qword [rbp - 0x58]
imul r10, r10
sub r8, r9
mov qword [rbp - 0x30], r10
mov r9, qword [rbp + 0x60]
mov r10, qword [rbp + 0x98]
mov qword [rbp - 0x28], r10
mov r10, qword [rbp - 0x40]
sub rdx, r10
mov r11, qword [rbp - 0x58]
imul r11, r8
mov qword [rbp + 0x38], rdx
imul r11, qword [rbp - 0x28]
mov qword [rbp + 0x78], r11
sub rcx, qword [rbp + 0xa8]
mov qword [rbp + 0x38], r10
cmp r9, rcx
jbe 0x7c003935
mov eax, dword [rbp + 0xa4]
add eax, 0xffff821d
mov ecx, dword [rbp - 0x34]
xor ecx, eax
mov dword [rbp + 0x34], ecx
mov rdx, qword [rbp - 0x28]
mov r8, qword [rbp - 0x28]
mov r9, qword [rbp - 0x58]
sub r8, r9
imul r8, r8
mov r10, qword [rbp + 0x78]
add r10, qword [rbp - 0x30]
imul rdx, rdx
add r10, rdx
cmp r10, r8
jb 0x7c003959
mov rax, qword [rbp + 0xa8]
xor rax, 0xffffffffffffb538
mov rcx, qword [rbp - 0x40]
xor rcx, rax
mov qword [rbp + 0x38], rcx
mov rax, qword [rbp - 8]
add rax, 2
mov qword [rbp - 8], rax
mov eax, 0x5ef1
mov ecx, eax
mov eax, dword [rbp + 0xa4]
xor eax, 0x1aba
mov edx, dword [rbp - 0x4c]
sub edx, eax
mov dword [rbp + 0x34], edx
mov r8, qword [rbp + 0xa8]
xor r8, 0x6df3
mov eax, dword [rbp + 0x5c]
mov dword [rbp + 0xa0], eax
mov r9, qword [rbp - 0x40]
mov qword [rbp + 0x38], r9
sub rcx, qword [rbp + 0xa8]
or r8, qword [rbp - 0x10]
mov eax, dword [rbp - 0x34]
imul edx, eax, 0x74b
mov dword [rbp + 0x34], edx
cmp r8, rcx
je 0x7c003959
mov eax, dword [rbp + 0xa0]
add eax, 1
mov dword [rbp + 0x5c], eax
mov eax, dword [rbp - 0x38]
mov dword [rbp + 0x34], eax
jmp 0x7c0036e9
mov eax, 0x710b
mov ecx, dword [rbp - 0x4c]
shr eax, cl
mov edx, dword [rbp + 0xa4]
add edx, 0xffff821d
mov r8d, dword [rbp + 0x84]
mov dword [rbp + 0x34], eax
cmp r8d, edx
jne 0x7c003a18
mov rax, qword [rbp - 0x18]
sub rax, 0x6686
mov rcx, qword [rbp + 0xa8]
xor rcx, 0xbda
cmp rax, rcx
ja 0x7c003736
mov qword [rbp + 0x18], 0
jmp 0x7c003ad9
mov rax, qword [rbp - 0x40]
or rax, 0x7a37
mov rcx, qword [rbp + 0x68]
mov qword [rbp + 0x38], rax
mov rax, qword [rbp - 0x40]
mov qword [rbp + 0x38], rax
mov rdx, qword [rbp - 0x20]
mov r8d, dword [rdx + 0x1c]
mov edx, r8d
mov qword [rbp + 0x38], rax
add rcx, rdx
mov r8d, dword [rbp - 0x4c]
mov dword [rbp + 0x34], r8d
mov qword [rbp + 0x50], rcx
movsxd rcx, dword [rbp + 0x84]
mov r9d, dword [rbp - 0x38]
and r9d, r8d
mov rdx, qword [rbp + 0x50]
mov dword [rbp + 0x34], r9d
mov qword [rbp - 0x60], rcx
mov rcx, rax
shr rax, cl
mov r10, qword [rbp - 0x60]
mov r9d, dword [rdx + r10*4]
mov qword [rbp + 0x38], rax
mov dword [rbp + 0x80], r9d
mov rax, qword [rbp - 0x40]
xor rax, 0x683b
mov qword [rbp + 0x38], rax
mov ecx, r8d
shl r8d, cl
mov rax, qword [rbp + 0x68]
mov dword [rbp + 0x34], r8d
mov r8d, dword [rbp + 0x80]
mov edx, r8d
add rax, rdx
mov qword [rbp + 0x88], rax
mov r8d, dword [rbp - 0x38]
imul r8d, r8d
mov dword [rbp + 0x34], r8d
mov rax, qword [rbp + 0x88]
mov qword [rbp + 0x18], rax
mov rcx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x40]
shl rax, cl
mov qword [rbp + 0x38], rax
mov rax, qword [rbp + 0x18]
add rsp, 0x130
pop rdi
pop rsi
pop rbp
ret