Function at 0x1400a9320
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x60
xor ebx, ebx
mov rsi, r8
mov ebp, edx
mov rdi, rcx
cmp byte [rcx + 9], bl
je 0x1400a9b37
mov qword [rsp + 0x88], r14
cmp byte [rcx + 0xb], bl
je 0x1400a9717
cmp dword [rcx + 0xc], ebx
je case.default.0x1400a9739
lea edx, [rdx*8]
mov rcx, r8
or edx, 2
call fcn.140070050
mov edx, dword [rdi + 0xc]
mov rcx, rsi
call fcn.140070050
movzx eax, byte [rdi + 8]
dec eax
cmp eax, 0x11
ja case.default.0x1400a9739
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xa9d48]
add rax, rcx
jmp rax
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop dword [rax]
mov rax, qword [rax]
mov rcx, rsi
movsxd rdx, dword [r14 + rax]
test edx, edx
jns 0x1400a93b5
call fcn.140070170
jmp 0x1400a93ba
call fcn.140070050
mov rax, qword [rdi]
inc ebx
add r14, 4
cmp ebx, dword [rax + 8]
jl 0x1400a93a0
mov r14, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov rbp, rbx
nop dword [rax + rax]
mov rdx, qword [rax]
mov rcx, rsi
mov rdx, qword [rdx + rbp]
call fcn.140070170
mov rax, qword [rdi]
lea rbp, [rbp + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a93f0
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov rbp, rbx
nop word [rax + rax]
mov rax, qword [rax]
mov rcx, rsi
mov edx, dword [rax + rbp]
call fcn.140070050
mov rax, qword [rdi]
lea rbp, [rbp + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9420
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov rbp, rbx
nop dword [rax]
mov rdx, qword [rax]
mov rcx, rsi
mov rdx, qword [rdx + rbp]
call fcn.140070170
mov rax, qword [rdi]
lea rbp, [rbp + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9450
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
mov rax, qword [rax]
mov rcx, rsi
mov eax, dword [r14 + rax]
mov edx, eax
sar edx, 0x1f
add eax, eax
xor edx, eax
call fcn.140070050
mov rax, qword [rdi]
lea r14, [r14 + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9481
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop dword [rax + rax]
mov rax, qword [rax]
mov rcx, rsi
mov rax, qword [r14 + rax]
mov rdx, rax
add rax, rax
sar rdx, 0x3f
xor rdx, rax
call fcn.140070170
mov rax, qword [rdi]
lea r14, [r14 + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a94c0
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop
mov rax, qword [rax]
mov rcx, rsi
mov edx, dword [r14 + rax]
call fcn.14006fcf0
mov rax, qword [rdi]
lea r14, [r14 + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9500
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov rbp, rbx
mov rdx, qword [rax]
mov rcx, rsi
mov rdx, qword [rdx + rbp]
call fcn.14006fe00
mov rax, qword [rdi]
lea rbp, [rbp + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9531
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rax]
mov rcx, rsi
mov edx, dword [r14 + rax]
call fcn.14006fcf0
mov rax, qword [rdi]
lea r14, [r14 + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9570
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov rbp, rbx
mov rdx, qword [rax]
mov rcx, rsi
mov rdx, qword [rdx + rbp]
call fcn.14006fe00
mov rax, qword [rdi]
lea rbp, [rbp + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a95a1
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov rbp, rbx
mov rax, qword [rax]
mov rcx, rsi
movss xmm0, dword [rax + rbp]
movss dword [rsp + 0x80], xmm0
mov edx, dword [rsp + 0x80]
call fcn.14006fcf0
mov rax, qword [rdi]
lea rbp, [rbp + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a95d2
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov rbp, rbx
mov rax, qword [rax]
mov rcx, rsi
movsd xmm0, qword [rax + rbp]
movsd qword [rsp + 0x80], xmm0
mov rdx, qword [rsp + 0x80]
call fcn.14006fe00
mov rax, qword [rdi]
lea rbp, [rbp + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9614
jmp case.default.0x1400a9739
mov rax, qword [rdi]
mov ebp, ebx
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop dword [rax]
mov rax, qword [rax]
mov edx, ebx
mov rcx, rsi
cmp byte [r14 + rax], dl
setne dl
call fcn.140070050
mov rax, qword [rdi]
lea r14, [r14 + 1]
inc ebp
cmp ebp, dword [rax + 8]
jl 0x1400a9660
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop word [rax + rax]
mov rax, qword [rax]
mov rcx, rsi
movsxd rdx, dword [r14 + rax]
test edx, edx
jns 0x1400a96b5
call fcn.140070170
jmp 0x1400a96ba
call fcn.140070050
mov rax, qword [rdi]
inc ebx
add r14, 4
cmp ebx, dword [rax + 8]
jl 0x1400a96a0
jmp case.default.0x1400a9739
mov r9d, 0x529
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 + 0x80]
call fcn.14004cf00
lea rcx, [rsp + 0x20]
call fcn.14004ceb0
jmp case.default.0x1400a9739
movzx eax, byte [rcx + 8]
dec eax
cmp eax, 0x11
ja case.default.0x1400a9739
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xa9d90]
add rax, rcx
jmp rax
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop word [rax + rax]
mov rax, qword [rax]
mov r8, rsi
mov ecx, ebp
mov edx, dword [r14 + rax]
call fcn.1400707f0
mov rax, qword [rdi]
lea r14, [r14 + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9750
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
mov rdx, qword [rax]
mov r8, rsi
mov ecx, ebp
mov rdx, qword [rdx + r14]
call fcn.140070960
mov rax, qword [rdi]
lea r14, [r14 + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9783
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop word [rax + rax]
mov rax, qword [rax]
mov r8, rsi
mov ecx, ebp
mov edx, dword [r14 + rax]
call fcn.140070c80
mov rax, qword [rdi]
lea r14, [r14 + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a97c0
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
mov rdx, qword [rax]
mov r8, rsi
mov ecx, ebp
mov rdx, qword [rdx + r14]
call fcn.140070960
mov rax, qword [rdi]
lea r14, [r14 + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a97f3
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop word [rax + rax]
mov rax, qword [rax]
mov r8, rsi
mov ecx, ebp
mov edx, dword [rax + r14]
call fcn.140070a80
mov rax, qword [rdi]
lea r14, [r14 + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9830
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
mov rdx, qword [rax]
mov r8, rsi
mov ecx, ebp
mov rdx, qword [r14 + rdx]
call fcn.140070ac0
mov rax, qword [rdi]
lea r14, [r14 + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9863
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop word [rax + rax]
mov rax, qword [rax]
mov r8, rsi
mov ecx, ebp
mov edx, dword [r14 + rax]
call fcn.140070840
mov rax, qword [rdi]
lea r14, [r14 + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a98a0
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
mov rdx, qword [rax]
mov r8, rsi
mov ecx, ebp
mov rdx, qword [rdx + r14]
call fcn.140070880
mov rax, qword [rdi]
lea r14, [r14 + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a98d3
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop word [rax + rax]
mov rax, qword [rax]
mov r8, rsi
mov ecx, ebp
mov edx, dword [r14 + rax]
call fcn.140070840
mov rax, qword [rdi]
lea r14, [r14 + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9910
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
mov rdx, qword [rax]
mov r8, rsi
mov ecx, ebp
mov rdx, qword [rdx + r14]
call fcn.140070880
mov rax, qword [rdi]
lea r14, [r14 + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9943
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop word [rax + rax]
mov rax, qword [rax]
mov r8, rsi
mov ecx, ebp
movss xmm1, dword [r14 + rax]
call fcn.1400708c0
mov rax, qword [rdi]
lea r14, [r14 + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9980
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop word [rax + rax]
mov rax, qword [rax]
mov r8, rsi
mov ecx, ebp
movsd xmm1, qword [rax + r14]
call fcn.1400707b0
mov rax, qword [rdi]
lea r14, [r14 + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a99c0
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop word [rax + rax]
mov rax, qword [rax]
mov r8, rsi
mov ecx, ebp
movzx edx, byte [r14 + rax]
call fcn.1400705f0
mov rax, qword [rdi]
lea r14, [r14 + 1]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9a00
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
mov rdx, qword [rax]
mov r8, rsi
mov ecx, ebp
mov rdx, qword [rdx + r14]
call fcn.140070b00
mov rax, qword [rdi]
lea r14, [r14 + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9a34
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop word [rax + rax]
mov rdx, qword [rax]
mov r8, rsi
mov ecx, ebp
mov rdx, qword [r14 + rdx]
call fcn.140070630
mov rax, qword [rdi]
lea r14, [r14 + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9a70
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
mov rax, qword [rax]
mov r8, rsi
mov ecx, ebp
mov edx, dword [r14 + rax]
call fcn.1400707f0
mov rax, qword [rdi]
lea r14, [r14 + 4]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9aa3
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
nop word [rax + rax]
mov rdx, qword [rax]
mov r8, rsi
mov ecx, ebp
mov rdx, qword [rdx + r14]
call fcn.140070900
mov rax, qword [rdi]
lea r14, [r14 + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9ae0
jmp case.default.0x1400a9739
mov rax, qword [rdi]
cmp dword [rax + 8], ebx
jle case.default.0x1400a9739
mov r14, rbx
mov rdx, qword [rax]
mov r8, rsi
mov ecx, ebp
mov rdx, qword [r14 + rdx]
call fcn.1400709a0
mov rax, qword [rdi]
lea r14, [r14 + 8]
inc ebx
cmp ebx, dword [rax + 8]
jl 0x1400a9b13
jmp case.default.0x1400a9739
movzx edx, byte [rcx + 0xa]
test dl, 0xf
jne case.default.0x1400a9b66
movzx eax, byte [rcx + 8]
dec eax
cmp eax, 0x11
ja case.default.0x1400a9b66
cdqe
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xa9dd8]
add rax, rcx
jmp rax
mov edx, dword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.1400707f0
mov rdx, qword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070960
mov edx, dword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070c80
mov rdx, qword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070960
mov edx, dword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070a80
mov rdx, qword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070ac0
mov edx, dword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070840
mov rdx, qword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070880
mov edx, dword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070840
mov rdx, qword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070880
movss xmm1, dword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.1400708c0
movsd xmm1, qword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.1400707b0
movzx edx, byte [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.1400705f0
mov rdx, qword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070b00
mov rdx, qword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070630
mov edx, dword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.1400707f0
mov rdx, qword [rdi]
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.140070900
mov rcx, qword [rdi]
test dl, 0xf0
je 0x1400a9d2d
mov rax, qword [rcx]
mov edx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp qword [rax + 0x60]
mov rdx, rcx
mov ecx, ebp
mov rbx, qword [rsp + 0x90]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
jmp fcn.1400709a0