Function at 0x100b4410
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100cae2d
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x100ec084]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp byte [edi + 9], 0
mov ebx, dword [ebp + 0xc]
je 0x100b4ace
cmp byte [edi + 0xb], 0
je 0x100b4765
cmp dword [edi + 0xc], 0
je case.default.0x100b4ae8
mov eax, dword [ebp + 8]
mov ecx, ebx
shl eax, 3
or eax, 2
push eax
call fcn.1007b910
push dword [edi + 0xc]
mov ecx, ebx
call fcn.1007b910
movzx eax, byte [edi + 8]
dec eax
cmp eax, 0x11
ja case.default.0x100b4ae8
jmp dword [eax*4 + 0x100b4c5c]
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop dword [eax + eax]
mov eax, dword [eax]
mov ecx, ebx
mov eax, dword [eax + esi*4]
test eax, eax
jns 0x100b44b5
cdq
push edx
push eax
call fcn.1007ba40
jmp 0x100b44bb
push eax
call fcn.1007b910
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b44a0
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
mov ecx, ebx
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
call fcn.1007ba40
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b44d5
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop
mov eax, dword [eax]
mov ecx, ebx
push dword [eax + esi*4]
call fcn.1007b910
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b4500
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
mov ecx, ebx
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
call fcn.1007ba40
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b4526
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
mov eax, dword [eax + esi*4]
mov ecx, eax
sar ecx, 0x1f
add eax, eax
xor ecx, eax
push ecx
mov ecx, ebx
call fcn.1007b910
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b4550
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
cmp dword [eax + 4], ecx
jle case.default.0x100b4ae8
mov eax, dword [eax]
mov edx, dword [eax + ecx*8]
mov esi, dword [eax + ecx*8 + 4]
mov ecx, esi
mov eax, esi
sar ecx, 0x1f
shld esi, edx, 1
sar eax, 0x1f
add edx, edx
xor eax, esi
xor ecx, edx
push eax
push ecx
mov ecx, ebx
call fcn.1007ba40
mov ecx, dword [ebp - 0x3c]
mov eax, dword [edi]
inc ecx
mov dword [ebp - 0x3c], ecx
cmp ecx, dword [eax + 4]
jl 0x100b4583
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop dword [eax]
mov eax, dword [eax]
mov ecx, ebx
push dword [eax + esi*4]
call fcn.1007b7d0
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b45d0
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
mov ecx, ebx
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
call fcn.1007b800
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b45f6
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
mov ecx, ebx
push dword [eax + esi*4]
call fcn.1007b7d0
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b4620
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
mov ecx, ebx
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
call fcn.1007b800
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b4646
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
mov ecx, ebx
movss xmm0, dword [eax + esi*4]
movss dword [ebp - 0x3c], xmm0
push dword [ebp - 0x3c]
call fcn.1007b7d0
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b4670
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
mov ecx, ebx
movsd xmm0, qword [eax + esi*8]
movsd qword [ebp - 0x40], xmm0
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
call fcn.1007b800
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b46a0
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
xor ecx, ecx
cmp byte [esi + eax], cl
setne cl
push ecx
mov ecx, ebx
call fcn.1007b910
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b46d3
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop
mov eax, dword [eax]
mov ecx, ebx
mov eax, dword [eax + esi*4]
test eax, eax
jns 0x100b4715
cdq
push edx
push eax
call fcn.1007ba40
jmp 0x100b471b
push eax
call fcn.1007b910
mov eax, dword [edi]
inc esi
cmp esi, dword [eax + 4]
jl 0x100b4700
jmp case.default.0x100b4ae8
push 0x49d
push str.C:UsersuserDesktopOld_ProtoValveProtoprotobuf_2.5.0_srcgoogleprotobufextension_set.cc
push 3
lea ecx, [ebp - 0x34]
call fcn.1008d6d0
push str.Non_primitive_types_cant_be_packed.
mov ecx, eax
mov dword [ebp - 4], 0xf
call fcn.1008d9c0
push eax
lea ecx, [ebp - 0x35]
call fcn.1008d820
lea ecx, [ebp - 0x34]
call fcn.1008d7b0
jmp case.default.0x100b4ae8
movzx eax, byte [edi + 8]
dec eax
cmp eax, 0x11
ja case.default.0x100b4ae8
jmp dword [eax*4 + 0x100b4ca4]
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
push ebx
push dword [eax + esi*4]
push dword [ebp + 8]
call fcn.10097840
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b4787
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
push ebx
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
push dword [ebp + 8]
call fcn.10097950
mov eax, dword [edi]
inc esi
add esp, 0x10
cmp esi, dword [eax + 4]
jl 0x100b47b2
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
push ebx
push dword [eax + esi*4]
push dword [ebp + 8]
call fcn.10097b80
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b47e1
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop dword [eax]
mov eax, dword [eax]
push ebx
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
push dword [ebp + 8]
call fcn.10097950
mov eax, dword [edi]
inc esi
add esp, 0x10
cmp esi, dword [eax + 4]
jl 0x100b4810
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop
mov eax, dword [eax]
push ebx
push dword [eax + esi*4]
push dword [ebp + 8]
call fcn.10097a30
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b4840
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop dword [eax + eax]
mov eax, dword [eax]
push ebx
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
push dword [ebp + 8]
call fcn.10097a60
mov eax, dword [edi]
inc esi
add esp, 0x10
cmp esi, dword [eax + 4]
jl 0x100b4870
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop
mov eax, dword [eax]
push ebx
push dword [eax + esi*4]
push dword [ebp + 8]
call fcn.10097880
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b48a0
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop dword [eax + eax]
mov eax, dword [eax]
push ebx
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
push dword [ebp + 8]
call fcn.100978b0
mov eax, dword [edi]
inc esi
add esp, 0x10
cmp esi, dword [eax + 4]
jl 0x100b48d0
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop
mov eax, dword [eax]
push ebx
push dword [eax + esi*4]
push dword [ebp + 8]
call fcn.10097880
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b4900
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop dword [eax + eax]
mov eax, dword [eax]
push ebx
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
push dword [ebp + 8]
call fcn.100978b0
mov eax, dword [edi]
inc esi
add esp, 0x10
cmp esi, dword [eax + 4]
jl 0x100b4930
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop
mov eax, dword [eax]
push ebx
push ecx
movss xmm0, dword [eax + esi*4]
movss dword [esp], xmm0
push dword [ebp + 8]
call fcn.100978e0
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b4960
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
push ebx
sub esp, 8
movsd xmm0, qword [eax + esi*8]
movsd qword [esp], xmm0
push dword [ebp + 8]
call fcn.10097810
mov eax, dword [edi]
inc esi
add esp, 0x10
cmp esi, dword [eax + 4]
jl 0x100b4993
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
push ebx
movzx eax, byte [eax + esi]
push eax
push dword [ebp + 8]
call fcn.10097700
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b49c8
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
push ebx
push dword [eax + esi*4]
push dword [ebp + 8]
call fcn.10097aa0
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b49f5
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
mov eax, dword [eax]
push ebx
push dword [eax + esi*4]
push dword [ebp + 8]
call fcn.10097730
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b4a20
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop dword [eax + eax]
mov eax, dword [eax]
push ebx
push dword [eax + esi*4]
push dword [ebp + 8]
call fcn.10097840
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b4a50
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop dword [eax + eax]
mov eax, dword [eax]
push ebx
push dword [eax + esi*4]
push dword [ebp + 8]
call fcn.10097910
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b4a80
jmp case.default.0x100b4ae8
mov eax, dword [edi]
xor esi, esi
cmp dword [eax + 4], esi
jle case.default.0x100b4ae8
nop dword [eax + eax]
mov eax, dword [eax]
push ebx
push dword [eax + esi*4]
push dword [ebp + 8]
call fcn.10097980
mov eax, dword [edi]
inc esi
add esp, 0xc
cmp esi, dword [eax + 4]
jl 0x100b4ab0
jmp case.default.0x100b4ae8
mov dl, byte [edi + 0xa]
test dl, 0xf
jne case.default.0x100b4ae8
movzx eax, byte [edi + 8]
dec eax
cmp eax, 0x11
ja case.default.0x100b4ae8
jmp dword [eax*4 + 0x100b4cec]
push ebx
push dword [edi]
push dword [ebp + 8]
call fcn.10097840
jmp 0x100b4c3a
push ebx
push dword [edi + 4]
push dword [edi]
push dword [ebp + 8]
call fcn.10097950
add esp, 0x10
jmp case.default.0x100b4ae8
push ebx
push dword [edi]
push dword [ebp + 8]
call fcn.10097b80
jmp 0x100b4c3a
push ebx
push dword [edi + 4]
push dword [edi]
push dword [ebp + 8]
call fcn.10097950
add esp, 0x10
jmp case.default.0x100b4ae8
push ebx
push dword [edi]
push dword [ebp + 8]
call fcn.10097a30
jmp 0x100b4c3a
push ebx
push dword [edi + 4]
push dword [edi]
push dword [ebp + 8]
call fcn.10097a60
add esp, 0x10
jmp case.default.0x100b4ae8
push ebx
push dword [edi]
push dword [ebp + 8]
call fcn.10097880
jmp 0x100b4c3a
push ebx
push dword [edi + 4]
push dword [edi]
push dword [ebp + 8]
call fcn.100978b0
add esp, 0x10
jmp case.default.0x100b4ae8
push ebx
push dword [edi]
push dword [ebp + 8]
call fcn.10097880
jmp 0x100b4c3a
push ebx
push dword [edi + 4]
push dword [edi]
push dword [ebp + 8]
call fcn.100978b0
add esp, 0x10
jmp case.default.0x100b4ae8
movss xmm0, dword [edi]
push ebx
push ecx
movss dword [esp], xmm0
push dword [ebp + 8]
call fcn.100978e0
jmp 0x100b4c3a
movsd xmm0, qword [edi]
push ebx
sub esp, 8
movsd qword [esp], xmm0
push dword [ebp + 8]
call fcn.10097810
add esp, 0x10
jmp case.default.0x100b4ae8
movzx eax, byte [edi]
push ebx
push eax
push dword [ebp + 8]
call fcn.10097700
jmp 0x100b4c3a
push ebx
push dword [edi]
push dword [ebp + 8]
call fcn.10097aa0
jmp 0x100b4c3a
push ebx
push dword [edi]
push dword [ebp + 8]
call fcn.10097730
jmp 0x100b4c3a
push ebx
push dword [edi]
push dword [ebp + 8]
call fcn.10097840
jmp 0x100b4c3a
push ebx
push dword [edi]
push dword [ebp + 8]
call fcn.10097910
jmp 0x100b4c3a
mov ecx, dword [edi]
push ebx
test dl, 0xf0
je 0x100b4c31
mov eax, dword [ecx]
push dword [ebp + 8]
call dword [eax + 0x30]
jmp case.default.0x100b4ae8
push ecx
push dword [ebp + 8]
call fcn.10097980
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100c30b8
mov esp, ebp
pop ebp
ret 8