Function at 0x429fc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov esi, dword [esp + 0x60]
cmp byte [esi + 9], 0
je 0x42a020
cmp byte [esi + 0xb], 0
movzx eax, byte [esi + 8]
je 0x429ff0
cmp al, 0x12
ja case.0x429fe3.0
jmp dword [eax*4 + 0x47a978]
mov edi, dword [esp + 0x64]
lea edx, [edi*8 + 1]
bsr edx, edx
lea ebx, [edx + edx*8 + 0x49]
shr ebx, 6
cmp al, 0xa
je 0x42a0c0
cmp al, 0x12
ja case.0x42a015.0
jmp dword [eax*4 + 0x47a9c4]
movzx ecx, byte [esi + 0xa]
xor ebx, ebx
test cl, 1
jne case.0x42a04e.0
mov eax, dword [esp + 0x64]
movzx edx, byte [esi + 8]
lea eax, [eax*8 + 1]
bsr eax, eax
lea ebx, [eax + eax*8 + 0x49]
shr ebx, 6
cmp dl, 0xa
je 0x42a0a0
cmp dl, 0x12
ja case.0x42a04e.0
jmp dword [edx*4 + 0x47aa10]
mov eax, dword [esi]
mov ebx, dword [eax]
shl ebx, 3
mov eax, ebx
mov dword [esi + 0xc], eax
test ebx, ebx
je case.0x42a04e.0
mov eax, dword [esp + 0x64]
mov edx, ebx
or edx, 1
lea eax, [eax*8 + 3]
bsr edx, edx
bsr eax, eax
lea edx, [edx + edx*8 + 0x49]
lea eax, [eax + eax*8 + 0x49]
shr edx, 6
shr eax, 6
add eax, edx
add ebx, eax
add esp, 0x4c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi]
add ebx, ebx
mov edx, dword [eax]
mov edx, dword [edx + 0x20]
cmp edx, 0x466f80
jne 0x42a858
mov eax, dword [eax + 8]
mov eax, dword [eax - 0xc]
add ebx, eax
jmp case.0x42a04e.0
mov edx, dword [esi]
xor edi, edi
mov eax, dword [edx + 4]
imul ebx, eax
add ebx, ebx
test eax, eax
jg 0x42a0e8
jmp case.0x42a04e.0
mov eax, dword [eax + 8]
mov eax, dword [eax - 0xc]
add ebx, eax
add edi, 1
cmp edi, dword [edx + 4]
jge case.0x42a04e.0
mov eax, dword [edx + 0xc]
mov eax, dword [eax + edi*4 + 4]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x20]
cmp ecx, 0x466f80
je 0x42a0d8
mov dword [esp], eax
call ecx
mov edx, dword [esi]
jmp 0x42a0de
lea ebx, [esp + 0x30]
mov dword [esp + 0xc], 0x6a1
mov dword [esp + 8], str.google_protobuf_extension_set.cc
mov dword [esp + 4], 3
mov dword [esp], ebx
call fcn.004443a0
mov dword [esp + 4], str.Non_primitive_types_cant_be_packed.
mov dword [esp], ebx
call fcn.00443f10
mov dword [esp + 4], eax
lea eax, [esp + 0x2f]
mov dword [esp], eax
call fcn.004447c0
mov dword [esp], ebx
call fcn.004443c0
mov dword [esi + 0xc], 0
xor ebx, ebx
jmp case.0x42a04e.0
add ebx, 8
jmp case.0x42a04e.0
add ebx, 4
jmp case.0x42a04e.0
mov eax, dword [esi]
add ebx, 8
imul ebx, dword [eax]
jmp case.0x42a04e.0
mov eax, dword [esi]
add ebx, 4
imul ebx, dword [eax]
jmp case.0x42a04e.0
mov eax, dword [esi]
mov ebx, dword [eax]
shl ebx, 2
mov eax, ebx
jmp 0x42a061
mov eax, dword [esi]
mov edx, dword [esi + 4]
or eax, 1
test edx, edx
je 0x42a1e2
bsr eax, edx
xor eax, 0x1f
xor eax, 0x3f
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
jmp case.0x42a04e.0
mov eax, dword [esi]
or eax, 1
cdq
test edx, edx
jne 0x42a1bc
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x42a1c2
mov eax, dword [esi]
mov eax, dword [eax]
mov edx, dword [eax - 0xc]
mov eax, edx
or eax, 1
bsr eax, eax
add edx, ebx
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
lea ebx, [eax + edx]
jmp case.0x42a04e.0
mov edx, dword [esi]
mov eax, dword [edx]
test eax, eax
jle case.0x429fe3.0
mov edx, dword [edx + 8]
xor ebx, ebx
lea ecx, [edx + eax*8]
jmp 0x42a249
bsr eax, edi
xor eax, 0x1f
xor eax, 0x3f
add edx, 8
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp ecx, edx
je 0x42a290
mov eax, dword [edx]
mov edi, dword [edx + 4]
or eax, 1
test edi, edi
jne 0x42a230
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x42a236
mov edx, dword [esi]
mov eax, dword [edx]
test eax, eax
jle case.0x429fe3.0
mov edx, dword [edx + 8]
xor ebx, ebx
lea ecx, [edx + eax*4]
lea esi, [esi]
mov eax, dword [edx]
or eax, 1
bsr eax, eax
add edx, 4
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp ecx, edx
jne 0x42a278
mov eax, ebx
jmp 0x42a061
mov edx, dword [esi]
mov eax, dword [edx]
test eax, eax
jle case.0x429fe3.0
mov edx, dword [edx + 8]
xor ebx, ebx
lea ecx, [edx + eax*8]
jmp 0x42a2d9
bsr eax, edi
xor eax, 0x1f
xor eax, 0x3f
add edx, 8
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp ecx, edx
je 0x42a290
mov eax, dword [edx]
mov edi, dword [edx + 4]
or eax, 1
test edi, edi
jne 0x42a2c0
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x42a2c6
mov edx, dword [esi]
mov eax, dword [edx]
test eax, eax
jle case.0x429fe3.0
mov ecx, dword [edx + 8]
xor ebx, ebx
lea ebp, [ecx + eax*8]
jmp 0x42a32d
bsr eax, edi
xor eax, 0x1f
xor eax, 0x3f
add ecx, 8
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp ebp, ecx
je 0x42a290
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov edi, edx
shld edx, eax, 1
add eax, eax
sar edi, 0x1f
mov dword [esp + 0x18], eax
xor eax, edi
mov dword [esp + 0x1c], edx
or eax, 1
xor edi, dword [esp + 0x1c]
jne 0x42a310
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x42a316
mov edx, dword [esi]
mov eax, dword [edx]
test eax, eax
jle case.0x429fe3.0
mov edx, dword [edx + 8]
xor ebx, ebx
lea ecx, [edx + eax*4]
lea esi, [esi]
mov edi, dword [edx]
lea eax, [edi + edi]
sar edi, 0x1f
xor eax, edi
or eax, 1
bsr eax, eax
add edx, 4
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp ecx, edx
jne 0x42a378
mov eax, ebx
jmp 0x42a061
mov eax, dword [esi]
mov eax, dword [eax]
mov ebx, eax
jmp 0x42a061
mov edx, dword [esi]
mov eax, dword [edx]
test eax, eax
jle case.0x429fe3.0
mov ecx, dword [edx + 8]
xor ebx, ebx
lea edi, [ecx + eax*4]
jmp 0x42a3ed
bsr eax, edx
xor eax, 0x1f
xor eax, 0x3f
add ecx, 4
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp edi, ecx
je 0x42a290
mov eax, dword [ecx]
or eax, 1
cdq
test edx, edx
jne 0x42a3d0
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x42a3d6
mov edx, dword [esi]
mov eax, dword [edx]
test eax, eax
jle case.0x429fe3.0
mov ecx, dword [edx + 8]
xor ebx, ebx
lea edi, [ecx + eax*4]
jmp 0x42a43d
bsr eax, edx
xor eax, 0x1f
xor eax, 0x3f
add ecx, 4
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp edi, ecx
je 0x42a290
mov eax, dword [ecx]
or eax, 1
cdq
test edx, edx
jne 0x42a420
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x42a426
mov edx, dword [esi]
lea eax, [edx + edx]
sar edx, 0x1f
xor eax, edx
or eax, 1
bsr eax, eax
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
jmp case.0x42a04e.0
mov edx, dword [esi]
mov eax, dword [edx]
imul ebx, eax
test eax, eax
jle case.0x42a04e.0
mov edx, dword [edx + 8]
lea ecx, [edx + eax*4]
lea esi, [esi]
mov eax, dword [edx]
or eax, 1
bsr eax, eax
add edx, 4
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp ecx, edx
jne 0x42a498
jmp case.0x42a04e.0
mov eax, dword [esi]
and ecx, 0x10
mov edx, dword [eax]
je 0x42a83f
mov dword [esp], eax
call dword [edx + 0x2c]
mov edx, eax
or edx, 1
bsr edx, edx
add eax, ebx
lea edx, [edx + edx*8 + 0x49]
shr edx, 6
lea ebx, [edx + eax]
jmp case.0x42a04e.0
mov edx, dword [esi]
mov eax, dword [edx]
imul ebx, eax
test eax, eax
jle case.0x42a04e.0
mov ecx, dword [edx + 8]
lea esi, [ecx + eax*4]
jmp 0x42a51d
bsr eax, edx
xor eax, 0x1f
xor eax, 0x3f
add ecx, 4
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp esi, ecx
je case.0x42a04e.0
mov eax, dword [ecx]
or eax, 1
cdq
test edx, edx
jne 0x42a500
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x42a506
mov edx, dword [esi]
mov eax, dword [edx + 4]
imul ebx, eax
test eax, eax
jle case.0x42a04e.0
xor edi, edi
jmp 0x42a575
mov eax, dword [eax + 8]
mov ecx, dword [eax - 0xc]
mov eax, ecx
or eax, 1
bsr eax, eax
add edi, 1
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add eax, ecx
add ebx, eax
cmp edi, dword [edx + 4]
jge case.0x42a04e.0
mov eax, dword [edx + 0xc]
mov eax, dword [eax + edi*4 + 4]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x20]
cmp ecx, 0x466f80
je 0x42a550
mov dword [esp], eax
call ecx
mov edx, dword [esi]
mov ecx, eax
jmp 0x42a556
mov eax, dword [esi]
xor edi, edi
mov dword [esp], eax
call fcn.00466e90
imul ebx, eax
jmp 0x42a5d9
mov dword [esp + 4], edi
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00466e10
mov eax, dword [eax]
mov edx, dword [eax - 0xc]
mov eax, edx
or eax, 1
bsr eax, eax
add edi, 1
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add eax, edx
add ebx, eax
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00466e90
cmp edi, eax
jl 0x42a5b0
jmp case.0x42a04e.0
mov eax, dword [esi]
jmp 0x42a462
mov edi, dword [esi + 4]
mov eax, dword [esi]
mov edx, edi
mov ecx, edi
shld edx, eax, 1
sar ecx, 0x1f
add eax, eax
xor eax, ecx
or eax, 1
xor ecx, edx
je 0x42a1e2
bsr eax, ecx
xor eax, 0x1f
jmp 0x42a1c2
mov edx, dword [esi]
mov eax, dword [edx]
imul ebx, eax
test eax, eax
jle case.0x42a04e.0
mov edx, dword [edx + 8]
lea ecx, [edx + eax*4]
lea esi, [esi]
mov esi, dword [edx]
lea eax, [esi + esi]
sar esi, 0x1f
xor eax, esi
or eax, 1
bsr eax, eax
add edx, 4
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp ecx, edx
jne 0x42a648
jmp case.0x42a04e.0
mov edx, dword [esi]
mov eax, dword [edx]
imul ebx, eax
test eax, eax
jle case.0x42a04e.0
mov ecx, dword [edx + 8]
lea esi, [ecx + eax*4]
jmp 0x42a6ad
bsr eax, edx
xor eax, 0x1f
xor eax, 0x3f
add ecx, 4
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp esi, ecx
je case.0x42a04e.0
mov eax, dword [ecx]
or eax, 1
cdq
test edx, edx
jne 0x42a690
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x42a696
mov eax, dword [esi]
add ebx, 1
imul ebx, dword [eax]
jmp case.0x42a04e.0
mov edx, dword [esi]
mov eax, dword [edx]
imul ebx, eax
test eax, eax
jle case.0x42a04e.0
mov edx, dword [edx + 8]
lea ecx, [edx + eax*8]
jmp 0x42a70d
bsr eax, esi
xor eax, 0x1f
xor eax, 0x3f
add edx, 8
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp ecx, edx
je case.0x42a04e.0
mov eax, dword [edx]
mov esi, dword [edx + 4]
or eax, 1
test esi, esi
jne 0x42a6f0
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x42a6f6
mov edx, dword [esi]
mov eax, dword [edx]
imul ebx, eax
test eax, eax
jle case.0x42a04e.0
mov edx, dword [edx + 8]
lea ecx, [edx + eax*8]
jmp 0x42a75d
bsr eax, esi
xor eax, 0x1f
xor eax, 0x3f
add edx, 8
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp ecx, edx
je case.0x42a04e.0
mov eax, dword [edx]
mov esi, dword [edx + 4]
or eax, 1
test esi, esi
jne 0x42a740
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x42a746
add ebx, 1
jmp case.0x42a04e.0
mov eax, dword [esi]
xor edi, edi
mov dword [esp], eax
call fcn.00466e90
imul ebx, eax
jmp 0x42a7c1
mov dword [esp + 4], edi
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00466e10
mov eax, dword [eax]
mov edx, dword [eax - 0xc]
mov eax, edx
or eax, 1
bsr eax, eax
add edi, 1
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add eax, edx
add ebx, eax
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00466e90
cmp edi, eax
jl 0x42a798
jmp case.0x42a04e.0
mov edx, dword [esi]
mov eax, dword [edx]
imul ebx, eax
test eax, eax
jle case.0x42a04e.0
mov ecx, dword [edx + 8]
lea ebp, [ecx + eax*8]
jmp 0x42a80d
bsr eax, esi
xor eax, 0x1f
xor eax, 0x3f
add ecx, 8
lea eax, [eax + eax*8 + 0x49]
shr eax, 6
add ebx, eax
cmp ebp, ecx
je case.0x42a04e.0
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
mov eax, esi
mov edx, edi
add eax, esi
shld edx, esi, 1
mov esi, edi
sar esi, 0x1f
mov dword [esp + 0x18], eax
xor eax, esi
mov dword [esp + 0x1c], edx
or eax, 1
xor esi, dword [esp + 0x1c]
jne 0x42a7f0
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x42a7f6
mov edx, dword [edx + 0x20]
cmp edx, 0x466f80
jne 0x42a864
mov eax, dword [eax + 8]
mov edx, dword [eax - 0xc]
jmp 0x42a1f7
mov dword [esp], eax
call edx
add ebx, eax
jmp case.0x42a04e.0
mov dword [esp], eax
call edx
mov edx, eax
jmp 0x42a1f7