Function at 0x1400a4c30
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x60
xor edi, edi
mov r12d, edx
mov ebx, edi
mov rsi, rcx
cmp byte [rcx + 9], bl
je 0x1400a52c9
lea r14d, [rdi + 1]
movzx ebp, byte [rcx + 8]
cmp byte [rcx + 0xb], bl
je 0x1400a4f0d
lea eax, [rbp - 1]
cmp eax, 0x11
ja case.default.0x1400a4c85
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xa5440]
add rax, rcx
jmp rax
mov rcx, qword [rsi]
cmp dword [rcx + 8], ebx
jle case.default.0x1400a4c85
mov r15, rdi
mov ebp, 0xa
nop word [rax + rax]
mov rax, qword [rcx]
mov edx, dword [r15 + rax]
test edx, edx
jns 0x1400a4caf
mov eax, ebp
jmp 0x1400a4cc6
cmp edx, 0x80
jae 0x1400a4cbc
mov eax, r14d
jmp 0x1400a4cc6
mov ecx, edx
call fcn.14006fb80
mov rcx, qword [rsi]
add ebx, eax
inc edi
add r15, 4
cmp edi, dword [rcx + 8]
jl 0x1400a4ca0
mov dword [rsi + 0xc], ebx
test ebx, ebx
jle case.default.0x1400a5329
cmp ebx, 0x80
jae 0x1400a4ede
mov eax, r14d
jmp 0x1400a4ee5
mov rax, qword [rsi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a4c85
mov r15, rdi
nop dword [rax]
mov rax, qword [rax]
mov rcx, qword [r15 + rax]
call fcn.14006fbc0
add ebx, eax
lea r15, [r15 + 8]
mov rax, qword [rsi]
inc edi
cmp edi, dword [rax + 8]
jl 0x1400a4d00
jmp case.default.0x1400a4c85
mov rax, qword [rsi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a4c85
mov r15, rdi
nop dword [rax]
mov rax, qword [rax]
mov ecx, dword [r15 + rax]
cmp ecx, 0x80
jae 0x1400a4d44
mov eax, r14d
jmp 0x1400a4d49
call fcn.14006fb80
add ebx, eax
inc edi
mov rax, qword [rsi]
add r15, 4
cmp edi, dword [rax + 8]
jl 0x1400a4d30
jmp case.default.0x1400a4c85
mov rax, qword [rsi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a4c85
mov r15, rdi
nop dword [rax]
mov rax, qword [rax]
mov rcx, qword [r15 + rax]
call fcn.14006fbc0
add ebx, eax
lea r15, [r15 + 8]
mov rax, qword [rsi]
inc edi
cmp edi, dword [rax + 8]
jl 0x1400a4d70
jmp case.default.0x1400a4c85
mov rax, qword [rsi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a4c85
mov r15, rdi
mov rax, qword [rax]
mov eax, dword [r15 + rax]
mov ecx, eax
sar ecx, 0x1f
add eax, eax
xor ecx, eax
cmp ecx, 0x80
jae 0x1400a4dbd
mov eax, r14d
jmp 0x1400a4dc2
call fcn.14006fb80
add ebx, eax
inc edi
mov rax, qword [rsi]
add r15, 4
cmp edi, dword [rax + 8]
jl 0x1400a4da0
jmp case.default.0x1400a4c85
mov rax, qword [rsi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a4c85
mov r15, rdi
nop word [rax + rax]
mov rax, qword [rax]
mov rax, qword [r15 + rax]
mov rcx, rax
add rax, rax
sar rcx, 0x3f
xor rcx, rax
call fcn.14006fbc0
add ebx, eax
lea r15, [r15 + 8]
mov rax, qword [rsi]
inc edi
cmp edi, dword [rax + 8]
jl 0x1400a4df0
jmp case.default.0x1400a4c85
mov rcx, qword [rsi]
cmp dword [rcx + 8], ebx
jle case.default.0x1400a4c85
mov r15, rdi
mov ebp, 0xa
mov rax, qword [rcx]
mov edx, dword [r15 + rax]
test edx, edx
jns 0x1400a4e41
mov eax, ebp
jmp 0x1400a4e58
cmp edx, 0x80
jae 0x1400a4e4e
mov eax, r14d
jmp 0x1400a4e58
mov ecx, edx
call fcn.14006fb80
mov rcx, qword [rsi]
add ebx, eax
inc edi
add r15, 4
cmp edi, dword [rcx + 8]
jl 0x1400a4e32
jmp case.default.0x1400a4c85
mov rax, qword [rsi]
mov ebx, dword [rax + 8]
shl ebx, 2
jmp case.default.0x1400a4c85
mov rax, qword [rsi]
mov ebx, dword [rax + 8]
shl ebx, 3
jmp case.default.0x1400a4c85
mov rax, qword [rsi]
mov ebx, dword [rax + 8]
jmp case.default.0x1400a4c85
mov r9d, 0x599
lea r8, str.D:BuildServerDworkpackage_cacheprotobuf_blz2.6.1.7_srcgoogleprotobufextension_set.cc
mov edx, 3
lea rcx, [rsp + 0x20]
call fcn.14004ce00
lea rdx, str.Non_primitive_types_cant_be_packed.
mov rcx, rax
call fcn.14004d0d0
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.14004cf00
lea rcx, [rsp + 0x20]
call fcn.14004ceb0
mov dword [rsi + 0xc], edi
jmp case.default.0x1400a5329
mov ecx, ebx
call fcn.14006fb80
lea ecx, [r12*8]
add ebx, eax
or ecx, 2
cmp ecx, 0x80
jb 0x1400a537f
call fcn.14006fb80
mov r14d, eax
add ebx, eax
jmp case.default.0x1400a5329
lea ecx, [rdx*8]
cmp ecx, 0x80
jae 0x1400a4f25
mov eax, r14d
movzx ecx, bpl
jmp 0x1400a4f2e
call fcn.14006fb80
movzx ecx, byte [rsi + 8]
cmp bpl, 0xa
lea edx, [rax + rax]
cmovne edx, eax
movzx eax, cl
dec eax
cmp eax, 0x11
ja case.default.0x1400a5329
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xa5488]
add rax, rcx
jmp rax
mov rcx, qword [rsi]
mov ebx, edx
mov eax, dword [rcx + 8]
imul ebx, eax
test eax, eax
jle case.default.0x1400a5329
mov r15, rdi
mov ebp, 0xa
nop word [rax + rax]
mov rax, qword [rcx]
mov edx, dword [r15 + rax]
test edx, edx
jns 0x1400a4f8f
mov eax, ebp
jmp 0x1400a4fa6
cmp edx, 0x80
jae 0x1400a4f9c
mov eax, r14d
jmp 0x1400a4fa6
mov ecx, edx
call fcn.14006fb80
mov rcx, qword [rsi]
add ebx, eax
inc edi
add r15, 4
cmp edi, dword [rcx + 8]
jl 0x1400a4f80
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
mov ebx, edx
mov eax, dword [rcx + 8]
imul ebx, eax
test eax, eax
jle case.default.0x1400a5329
mov r14, rdi
nop
mov rax, qword [rcx]
mov rcx, qword [r14 + rax]
call fcn.14006fbc0
mov rcx, qword [rsi]
lea r14, [r14 + 8]
add ebx, eax
inc edi
cmp edi, dword [rcx + 8]
jl 0x1400a4fd0
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
mov ebx, edx
mov eax, dword [rcx + 8]
imul ebx, eax
test eax, eax
jle case.default.0x1400a5329
mov r15, rdi
nop word [rax + rax]
mov rax, qword [rcx]
mov ecx, dword [r15 + rax]
cmp ecx, 0x80
jae 0x1400a5024
mov eax, r14d
jmp 0x1400a5029
call fcn.14006fb80
mov rcx, qword [rsi]
add ebx, eax
inc edi
add r15, 4
cmp edi, dword [rcx + 8]
jl 0x1400a5010
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
mov ebx, edx
mov eax, dword [rcx + 8]
imul ebx, eax
test eax, eax
jle case.default.0x1400a5329
mov r14, rdi
mov rax, qword [rcx]
mov rcx, qword [r14 + rax]
call fcn.14006fbc0
mov rcx, qword [rsi]
lea r14, [r14 + 8]
add ebx, eax
inc edi
cmp edi, dword [rcx + 8]
jl 0x1400a5054
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
mov ebx, edx
mov eax, dword [rcx + 8]
imul ebx, eax
test eax, eax
jle case.default.0x1400a5329
mov r15, rdi
nop dword [rax + rax]
mov rax, qword [rcx]
mov eax, dword [r15 + rax]
mov ecx, eax
sar ecx, 0x1f
add eax, eax
xor ecx, eax
cmp ecx, 0x80
jae 0x1400a50ad
mov eax, r14d
jmp 0x1400a50b2
call fcn.14006fb80
mov rcx, qword [rsi]
add ebx, eax
inc edi
add r15, 4
cmp edi, dword [rcx + 8]
jl 0x1400a5090
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
mov ebx, edx
mov eax, dword [rcx + 8]
imul ebx, eax
test eax, eax
jle case.default.0x1400a5329
mov r14, rdi
nop dword [rax]
mov rax, qword [rcx]
mov rax, qword [r14 + rax]
mov rcx, rax
add rax, rax
sar rcx, 0x3f
xor rcx, rax
call fcn.14006fbc0
mov rcx, qword [rsi]
lea r14, [r14 + 8]
add ebx, eax
inc edi
cmp edi, dword [rcx + 8]
jl 0x1400a50e0
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
mov ebx, edx
mov eax, dword [rcx + 8]
imul ebx, eax
test eax, eax
jle case.default.0x1400a5329
mov r15, rdi
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rcx]
mov rbp, qword [r15 + rax]
mov ecx, dword [rbp + 8]
cmp ecx, 0x80
jae 0x1400a5147
mov ecx, r14d
jmp 0x1400a514e
call fcn.14006fb80
mov ecx, eax
add ecx, dword [rbp + 8]
inc edi
add ebx, ecx
add r15, 8
mov rcx, qword [rsi]
cmp edi, dword [rcx + 8]
jl 0x1400a5130
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
mov ebx, edx
mov eax, dword [rcx + 8]
imul ebx, eax
test eax, eax
jle case.default.0x1400a5329
mov r15, rdi
nop dword [rax]
mov rax, qword [rcx]
mov rbp, qword [r15 + rax]
mov ecx, dword [rbp + 8]
cmp ecx, 0x80
jae 0x1400a5197
mov ecx, r14d
jmp 0x1400a519e
call fcn.14006fb80
mov ecx, eax
add ecx, dword [rbp + 8]
inc edi
add ebx, ecx
add r15, 8
mov rcx, qword [rsi]
cmp edi, dword [rcx + 8]
jl 0x1400a5180
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
mov ebx, edx
mov eax, dword [rcx + 8]
imul ebx, eax
test eax, eax
jle case.default.0x1400a5329
mov r15, rdi
mov ebp, 0xa
mov rax, qword [rcx]
mov edx, dword [r15 + rax]
test edx, edx
jns 0x1400a51e0
mov eax, ebp
jmp 0x1400a51f7
cmp edx, 0x80
jae 0x1400a51ed
mov eax, r14d
jmp 0x1400a51f7
mov ecx, edx
call fcn.14006fb80
mov rcx, qword [rsi]
add ebx, eax
inc edi
add r15, 4
cmp edi, dword [rcx + 8]
jl 0x1400a51d1
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
mov ebx, edx
mov eax, dword [rcx + 8]
imul ebx, eax
test eax, eax
jle case.default.0x1400a5329
mov r14, rdi
nop
mov rax, qword [rcx]
mov rcx, qword [r14 + rax]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov rcx, qword [rsi]
lea r14, [r14 + 8]
add ebx, eax
inc edi
cmp edi, dword [rcx + 8]
jl 0x1400a5220
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
mov ebx, edx
mov eax, dword [rcx + 8]
imul ebx, eax
test eax, eax
jle case.default.0x1400a5329
mov r12, rdi
nop dword [rax + rax]
mov rax, qword [rcx]
mov rcx, qword [r12 + rax]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r15d, eax
cmp eax, 0x80
jae 0x1400a527c
mov eax, r14d
jmp 0x1400a5284
mov ecx, r15d
call fcn.14006fb80
mov rcx, qword [rsi]
add eax, r15d
add ebx, eax
inc edi
add r12, 8
cmp edi, dword [rcx + 8]
jl 0x1400a5260
jmp case.default.0x1400a5329
mov rax, qword [rsi]
lea ebx, [rdx + 4]
imul ebx, dword [rax + 8]
jmp case.default.0x1400a5329
mov rax, qword [rsi]
lea ebx, [rdx + 8]
imul ebx, dword [rax + 8]
jmp case.default.0x1400a5329
mov rax, qword [rsi]
lea ebx, [rdx + 1]
imul ebx, dword [rax + 8]
jmp case.default.0x1400a5329
test byte [rcx + 0xa], 0xf
jne case.default.0x1400a5329
movzx edi, byte [rcx + 8]
mov r14d, 1
lea ecx, [rdx*8]
cmp ecx, 0x80
jae 0x1400a52f5
mov eax, r14d
movzx ecx, dil
jmp 0x1400a52fe
call fcn.14006fb80
movzx ecx, byte [rsi + 8]
cmp dil, 0xa
lea ebx, [rax + rax]
cmovne ebx, eax
movzx eax, cl
dec eax
cmp eax, 0x11
ja case.default.0x1400a5329
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xa54d0]
add rax, rcx
jmp rax
mov ecx, dword [rsi]
test ecx, ecx
jns 0x1400a533d
mov ebp, 0xa
add ebx, ebp
jmp case.default.0x1400a5329
cmp ecx, 0x80
jae 0x1400a5350
mov ebp, r14d
add ebx, r14d
jmp case.default.0x1400a5329
call fcn.14006fb80
mov ebp, eax
add ebx, eax
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
call fcn.14006fbc0
add ebx, eax
jmp case.default.0x1400a5329
mov ecx, dword [rsi]
cmp ecx, 0x80
jb 0x1400a537f
call fcn.14006fb80
mov r14d, eax
add ebx, r14d
jmp case.default.0x1400a5329
mov eax, dword [rsi]
mov ecx, eax
sar ecx, 0x1f
add eax, eax
xor ecx, eax
cmp ecx, 0x80
jb 0x1400a537f
call fcn.14006fb80
mov r14d, eax
add ebx, eax
jmp case.default.0x1400a5329
mov rax, qword [rsi]
mov rcx, rax
add rax, rax
sar rcx, 0x3f
xor rcx, rax
call fcn.14006fbc0
add ebx, eax
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
call fcn.1400a55c0
add ebx, eax
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
call fcn.1400a55c0
add ebx, eax
jmp case.default.0x1400a5329
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax + 0x40]
add ebx, eax
jmp case.default.0x1400a5329
test byte [rsi + 0xa], 0xf0
mov rcx, qword [rsi]
je 0x1400a540e
mov rax, qword [rcx]
call qword [rax + 0x38]
mov edi, eax
cmp eax, 0x80
jb 0x1400a5406
mov ecx, eax
call fcn.14006fb80
mov r14d, eax
lea eax, [r14 + rdi]
add ebx, eax
jmp case.default.0x1400a5329
call fcn.14007a920
add ebx, eax
jmp case.default.0x1400a5329
add ebx, 4
jmp case.default.0x1400a5329
add ebx, 8
jmp case.default.0x1400a5329
inc ebx
lea r11, [rsp + 0x60]
mov eax, ebx
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret