Function at 0x64c950
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1d8
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
test eax, eax
mov dword [esp + 4], ecx
je 0x64c975
mov ebx, dword [eax + 8]
add ebx, 0xc
jmp 0x64c97b
mov eax, dword [ecx + 0x28]
mov ebx, dword [eax + 0xc]
mov esi, dword [edx + 8]
mov edi, dword [edx + 0x10]
shl esi, 0x1b
sar esi, 0x1f
and esi, dword [edx + 0x20]
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
jne 0x64c9ce
mov dword [esp + 0xc], esi
lea esi, [esp + 0x10]
mov ecx, esi
push 0x1c9
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.CHECK_failed:_has_allocated__:
call fcn.0062ff70
lea ecx, [esp + 0x40]
push eax
call fcn.006300f0
mov ecx, esi
mov esi, dword [esp + 0xc]
call fcn.00630770
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x80], 0
movzx ecx, byte [ebx]
test cl, 1
je 0x64c9f6
mov eax, dword [ebx + 4]
jmp 0x64c9fa
mov eax, ecx
shr eax, 1
mov edx, edi
and edx, 0xfffffffc
and esi, 0xfffffffc
test eax, eax
mov dword [esp + 8], edx
je 0x64ca16
mov edi, esi
test cl, 1
je 0x64ca22
mov ebx, dword [ebx + 8]
jmp 0x64ca23
lea ecx, [esp + 0x78]
push edx
call fcn.0051f860
jmp 0x64ca82
inc ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], 0x8d0947
mov dword [esp + 0x44], 1
mov esi, dword [esp + 8]
movzx eax, byte [esi]
lea ecx, [esi + 1]
mov edx, eax
shr edx, 1
test al, 1
cmovne ecx, dword [esi + 8]
mov dword [esp + 0xb0], ecx
cmovne edx, dword [esi + 4]
mov dword [esp + 0xb4], edx
lea eax, [esp + 0xb0]
lea ecx, [esp + 0x40]
lea edx, [esp + 0x10]
lea esi, [esp + 0x78]
push eax
push ecx
push edx
push esi
call fcn.0062cf90
add esp, 0x10
mov esi, edi
mov dword [esp + 0xc], esi
test esi, esi
jne 0x64cb3f
mov ecx, dword [esp + 8]
movzx eax, byte [ecx]
test al, 1
je 0x64ca9e
mov ecx, dword [ecx + 8]
jmp 0x64ca9f
inc ecx
movzx edx, byte [ecx]
add dl, 0x9f
cmp dl, 0x19
ja 0x64cb3f
test al, 1
je 0x64cabf
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x64cac5
jmp 0x64cb06
shr eax, 1
test eax, eax
je 0x64cb06
xor esi, esi
xor edx, edx
jmp 0x64cad5
inc esi
cmp eax, esi
je 0x64caf9
movzx ebx, byte [ecx + esi]
mov bh, bl
add bh, 0x9f
cmp bh, 0x1a
jb 0x64cad0
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x64cad0
mov edx, 1
cmp bl, 0x5f
je 0x64cad0
jmp 0x64cb3f
cmp edx, 1
je 0x64d4df
test edx, edx
jne 0x64cb3f
lea eax, [esp + 0x78]
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 8]
push eax
call fcn.0064c340
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x3c], 0
mov ebx, dword [esp + 4]
jmp 0x64d1cd
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
lea esi, [esp + 0x10]
mov ecx, esi
mov edi, dword [esp + 8]
push edi
call fcn.00404870
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
jae 0x64cba7
mov ecx, dword [esp + 0x80]
mov dword [eax + 8], ecx
movq xmm0, qword [esp + 0x78]
movq qword [eax], xmm0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x80], 0
add dword [esp + 0x14], 0xc
jmp 0x64cbb5
lea eax, [esp + 0x78]
lea ecx, [esp + 0x10]
push eax
call fcn.0040c760
mov dword [esp + 0x134], esi
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], 0
lea ecx, [esp + 0x40]
push edi
call fcn.0051f860
movzx ecx, byte [esp + 0x40]
test cl, 1
je 0x64cbf9
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x64cc07
jmp 0x64cf01
shr ecx, 1
lea eax, [esp + 0x41]
test ecx, ecx
je 0x64cf01
mov esi, eax
cmp ecx, 8
jb 0x64cfca
xor edx, edx
cmp ecx, 0x10
mov dword [esp + 0x3c], ecx
jb 0x64cdc2
mov edx, ecx
and edx, 0xfffffff0
xor esi, esi
movdqa xmm0, xmmword [0x8d0210]
movdqa xmm1, xmmword [0x8d0220]
jmp 0x64cc4b
add esi, 0x10
cmp edx, esi
je 0x64cda8
movdqu xmm2, xmmword [eax + esi]
movdqa xmm4, xmm2
paddb xmm4, xmm0
movdqa xmm3, xmm4
pminub xmm3, xmm1
pcmpeqb xmm3, xmm4
movd ecx, xmm3
test cl, 1
je 0x64cc77
movd ebx, xmm2
add bl, 0x20
mov byte [eax + esi], bl
test ch, 1
je 0x64cc87
movd ebx, xmm2
add bh, 0x20
mov byte [eax + esi + 1], bh
mov ebx, ecx
shr ebx, 0x10
test bl, 1
je 0x64cc9f
movd ebx, xmm2
shr ebx, 0x10
add bl, 0x20
mov byte [eax + esi + 2], bl
shr ecx, 0x18
test cl, 1
je 0x64ccb5
movd ecx, xmm2
shr ecx, 0x18
add cl, 0x20
mov byte [eax + esi + 3], cl
pextrw ecx, xmm3, 2
test cl, 1
je 0x64cccb
pextrw ebx, xmm2, 2
add bl, 0x20
mov byte [eax + esi + 4], bl
test ch, 1
je 0x64ccdc
pextrw ecx, xmm2, 2
add ch, 0x20
mov byte [eax + esi + 5], ch
pextrw ecx, xmm3, 3
test cl, 1
je 0x64ccf2
pextrw ebx, xmm2, 3
add bl, 0x20
mov byte [eax + esi + 6], bl
test ch, 1
je 0x64cd03
pextrw ecx, xmm2, 3
add ch, 0x20
mov byte [eax + esi + 7], ch
pextrw ecx, xmm3, 4
test cl, 1
je 0x64cd19
pextrw ebx, xmm2, 4
add bl, 0x20
mov byte [eax + esi + 8], bl
test ch, 1
je 0x64cd2a
pextrw ecx, xmm2, 4
add ch, 0x20
mov byte [eax + esi + 9], ch
pextrw ecx, xmm3, 5
test cl, 1
je 0x64cd40
pextrw ebx, xmm2, 5
add bl, 0x20
mov byte [eax + esi + 0xa], bl
test ch, 1
je 0x64cd51
pextrw ecx, xmm2, 5
add ch, 0x20
mov byte [eax + esi + 0xb], ch
pextrw ecx, xmm3, 6
test cl, 1
je 0x64cd67
pextrw ebx, xmm2, 6
add bl, 0x20
mov byte [eax + esi + 0xc], bl
test ch, 1
je 0x64cd78
pextrw ecx, xmm2, 6
add ch, 0x20
mov byte [eax + esi + 0xd], ch
pextrw ecx, xmm3, 7
test cl, 1
je 0x64cd8e
pextrw ebx, xmm2, 7
add bl, 0x20
mov byte [eax + esi + 0xe], bl
test ch, 1
je 0x64cc40
pextrw ecx, xmm2, 7
add ch, 0x20
mov byte [eax + esi + 0xf], ch
jmp 0x64cc40
mov ecx, dword [esp + 0x3c]
cmp ecx, edx
je 0x64cf01
test cl, 8
jne 0x64cdc2
add edx, eax
mov esi, edx
jmp 0x64cfca
and ecx, 0xfffffff8
mov edi, ecx
lea esi, [eax + ecx]
movdqa xmm0, xmmword [0x8d0230]
movdqa xmm1, xmmword [0x8d0240]
pcmpeqd xmm2, xmm2
jmp 0x64cded
add edx, 8
mov ecx, edi
cmp edi, edx
je 0x64cef1
movq xmm3, qword [eax + edx]
movdqa xmm4, xmm3
paddb xmm4, xmm0
movdqa xmm5, xmm4
pmaxub xmm5, xmm1
pcmpeqb xmm5, xmm4
movd ecx, xmm5
not cl
movd ebx, xmm3
test cl, 1
je 0x64ce1d
mov ecx, ebx
add cl, 0x20
mov byte [eax + edx], cl
movdqa xmm4, xmm5
pxor xmm4, xmm2
movdqa xmm6, xmm4
pslld xmm6, 8
movd ecx, xmm6
shr ecx, 0x10
test cl, 1
je 0x64ce43
mov cl, bh
add cl, 0x20
mov byte [eax + edx + 1], cl
pshuflw xmm6, xmm5, 0x55
pxor xmm6, xmm2
pextrw ecx, xmm6, 2
test cl, 1
je 0x64ce62
mov ecx, ebx
shr ecx, 0x10
add cl, 0x20
mov byte [eax + edx + 2], cl
movdqa xmm6, xmm4
psllq xmm6, 0x18
pextrw ecx, xmm6, 3
test cl, 1
je 0x64ce7f
shr ebx, 0x18
add bl, 0x20
mov byte [eax + edx + 3], bl
pshufd xmm5, xmm5, 0x55
pxor xmm5, xmm2
pextrw ecx, xmm5, 4
pextrw ebx, xmm3, 2
test cl, 1
je 0x64cea0
mov ecx, ebx
add cl, 0x20
mov byte [eax + edx + 4], cl
movdqa xmm5, xmm4
pslldq xmm5, 5
pextrw ecx, xmm5, 5
test cl, 1
je 0x64ceba
add bh, 0x20
mov byte [eax + edx + 5], bh
pextrw ecx, xmm4, 3
pextrw ebx, xmm3, 3
test cl, 1
je 0x64ced2
mov ecx, ebx
add cl, 0x20
mov byte [eax + edx + 6], cl
pslldq xmm4, 7
pextrw ecx, xmm4, 7
test cl, 1
je 0x64cde0
add bh, 0x20
mov byte [eax + edx + 7], bh
jmp 0x64cde0
mov ecx, dword [esp + 0x3c]
cmp ecx, edi
mov edi, dword [esp + 8]
jne 0x64cfca
mov eax, dword [esp + 0x48]
mov dword [esp + 0xb8], eax
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0xb0], xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], 0
lea ecx, [esp + 0x134]
lea edx, [esp + 0xb0]
call fcn.00659680
mov ebx, eax
test byte [esp + 0xb0], 1
je 0x64cf61
push dword [esp + 0xb8]
call fcn.0051c570
add esp, 4
lea esi, [esp + 0xdc]
mov ecx, esi
mov edx, edi
push 1
call fcn.00653390
add esp, 4
lea ecx, [esp + 0x134]
mov edx, esi
call fcn.00659680
mov dword [esp + 0x74], eax
test byte [esp + 0xdc], 1
je 0x64cfa1
push dword [esp + 0xe4]
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 0xc]
test eax, eax
mov dword [esp + 0x3c], ebx
je 0x64cfed
lea esi, [esp + 0x108]
mov ecx, esi
push eax
call fcn.0051f860
lea ecx, [esp + 0x134]
mov edx, esi
jmp 0x64d0ba
add eax, ecx
jmp 0x64cfd9
inc esi
cmp esi, eax
je 0x64cf01
movzx ecx, byte [esi]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x19
ja 0x64cfd0
add cl, 0x20
mov byte [esi], cl
jmp 0x64cfd0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x110], 0
movzx eax, byte [edi]
test al, 1
je 0x64d01a
mov eax, dword [edi + 4]
jmp 0x64d01c
shr eax, 1
lea ecx, [esp + 0x108]
push eax
call fcn.0051fe90
movzx ecx, byte [edi]
test cl, 1
je 0x64d039
mov esi, dword [edi + 4]
mov edi, dword [edi + 8]
jmp 0x64d040
mov eax, ecx
inc edi
shr eax, 1
mov esi, eax
mov eax, esi
test esi, esi
je 0x64d0ac
xor ebx, ebx
xor eax, eax
mov dword [esp + 0xc], esi
jmp 0x64d05b
inc ebx
mov eax, dword [esp + 8]
mov ecx, esi
cmp esi, ebx
je 0x64d0ac
movzx ecx, byte [edi + ebx]
mov dl, 1
mov dword [esp + 8], edx
cmp cl, 0x5f
je 0x64d050
mov edx, ecx
add dl, 0x9f
mov esi, edi
movzx edi, cl
add cl, 0xe0
cmp dl, 0x1a
movzx ecx, cl
cmovae ecx, edi
test al, 1
cmove ecx, edi
mov edi, esi
movzx edx, al
mov eax, 0
cmovne edx, eax
mov dword [esp + 8], edx
movsx eax, cl
lea ecx, [esp + 0x108]
push eax
call fcn.00520460
mov esi, dword [esp + 0xc]
jmp 0x64d050
lea ecx, [esp + 0x134]
lea edx, [esp + 0x108]
call fcn.00659680
mov dword [esp + 0xc], eax
test byte [esp + 0x108], 1
je 0x64d0dc
push dword [esp + 0x110]
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x10]
sar eax, 2
imul edx, eax, 0xaaaaaaab
mov ecx, dword [ebp + 0x18]
call fcn.00656ac0
mov dword [esp + 8], eax
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
cmp edi, esi
je 0x64d16b
mov ebx, dword [esp + 8]
jmp 0x64d141
mov word [ebx], 0
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
movsd xmm0, qword [edi]
movsd qword [ebx], xmm0
mov dword [edi + 4], 0
mov dword [edi], 0
mov dword [edi + 8], 0
add edi, 0xc
add ebx, 0xc
cmp edi, esi
je 0x64d16b
test byte [ebx], 1
je 0x64d110
mov eax, dword [ebx + 8]
mov byte [eax], 0
mov dword [ebx + 4], 0
test byte [ebx], 1
je 0x64d115
push dword [ebx + 8]
call fcn.0051c570
add esp, 4
mov dword [ebx], 0
jmp 0x64d115
test byte [esp + 0x40], 1
je 0x64d17e
push dword [esp + 0x48]
call fcn.0051c570
add esp, 4
mov esi, dword [esp + 0x10]
test esi, esi
mov ebx, dword [esp + 4]
je 0x64d1cd
mov eax, dword [esp + 0x14]
mov ecx, esi
cmp eax, esi
jne 0x64d1a6
jmp 0x64d1c0
mov eax, edi
cmp edi, esi
je 0x64d1bc
lea edi, [eax - 0xc]
test byte [eax - 0xc], 1
je 0x64d1a0
push dword [eax - 4]
call fcn.0051c570
add esp, 4
jmp 0x64d1a0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], esi
push ecx
call fcn.0051c570
add esp, 4
mov edi, ebx
mov esi, dword [ebp + 0x10]
test byte [esp + 0x78], 1
je 0x64d1e8
push dword [esp + 0x80]
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 0x3c]
and al, 3
mov ecx, dword [esp + 0x74]
shl cl, 2
and cl, 0xc
or cl, al
mov ebx, dword [esp + 0xc]
shl bl, 4
and bl, 0x70
or bl, cl
mov edx, dword [esp + 8]
mov dword [esi + 8], edx
movzx eax, byte [esi + 3]
and al, 0x80
or bl, al
mov byte [esi + 3], bl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x10]
and eax, 0xfffffffc
add edx, 0xc
mov ebx, edi
mov edi, ecx
mov ecx, ebx
push edi
push edx
push eax
call fcn.00645d80
mov eax, dword [ebx + 0x28]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x28]
mov dword [esi + 4], eax
movzx eax, byte [esi + 1]
movzx ecx, byte [ebp + 0x14]
shl cl, 3
and al, 0xe7
or al, cl
mov byte [esi + 1], al
movzx ecx, byte [edi + 0x30]
add cl, cl
and al, 0xed
or al, cl
mov byte [esi + 1], al
cmp byte [edi + 0x30], 0
je 0x64d2ae
mov ecx, dword [ebx + 0x28]
cmp byte [ecx + 3], 3
je 0x64d2ae
mov esi, dword [esi + 8]
add esi, 0xc
lea edi, [esp + 0x10]
push esi
push str.The__proto3_optionaltrue__option_may_only_be_set_on_proto3fields__not
push edi
call fcn.00523f10
add esp, 0xc
mov ecx, ebx
push edi
mov edi, dword [ebp + 8]
push 2
push edi
push esi
call fcn.00643140
test byte [esp + 0x10], 1
je 0x64d2a7
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
mov esi, dword [ebp + 0x10]
movzx eax, byte [esi + 1]
movzx edx, byte [edi + 8]
shr dl, 2
and dl, 4
mov ecx, eax
and cl, 0xfb
or cl, dl
mov byte [esi + 1], cl
movzx edx, byte [edi + 0x38]
mov byte [esi + 2], dl
mov edx, dword [edi + 0x34]
mov ah, dl
shl ah, 5
and ah, 0x60
and cl, 0x9f
or cl, ah
mov byte [esi + 1], cl
and edx, 3
cmp edx, 2
jne 0x64d379
and al, 8
je 0x64d379
mov ebx, dword [esi + 8]
add ebx, 0xc
lea esi, [esp + 0x40]
push ebx
push str.The_extension
push esi
call fcn.00523f10
add esp, 0xc
mov ecx, esi
push str._cannot_be_required.
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x10], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
lea eax, [esp + 0x10]
mov ecx, dword [esp + 4]
push eax
push 2
push edi
push ebx
call fcn.00643140
test byte [esp + 0x10], 1
je 0x64d35f
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
test byte [esp + 0x40], 1
je 0x64d372
push dword [esp + 0x48]
call fcn.0051c570
add esp, 4
mov esi, dword [ebp + 0x10]
movzx ecx, byte [esi + 1]
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x28], 0
movzx eax, byte [edi + 8]
shr al, 3
and al, 1
mov edx, ecx
and dl, 0xfe
or dl, al
mov byte [esi + 1], dl
mov eax, dword [edi + 8]
test al, 8
je 0x64d3cb
and cl, 0x60
cmp cl, 0x60
jne 0x64d3cb
mov eax, dword [esi + 8]
add eax, 0xc
mov ecx, dword [esp + 4]
push str.Repeated_fields_cant_have_default_values.
push 4
push edi
push eax
call fcn.00643220
mov eax, dword [edi + 8]
test eax, 0x400
je case.default.0x64d43d
lea ebx, [esi + 0x28]
test al, 8
jne 0x64d456
mov eax, dword [esi + 0x10]
test eax, eax
je 0x64d428
mov dword [esp + 0xb0], 0x6563d0
mov dword [esp + 0x78], esi
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x64d428
lea ecx, [esp + 0xb0]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x78]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x40]
push 0x4afd90
push ecx
push eax
call fcn.0051c150
add esp, 0xc
movzx eax, byte [esi + 2]
mov eax, dword [eax*4 + 0x8d04b0]
dec eax
cmp eax, 9
ja case.default.0x64d43d
jmp dword [eax*4 + 0x8d0278]
mov dword [ebx + 4], 0
mov dword [ebx], 0
jmp case.default.0x64d43d
mov dword [esp + 0xdc], 0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x64d4ac
mov dword [esp + 0xb0], 0x6563d0
mov dword [esp + 0x78], esi
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x64d4ac
lea ecx, [esp + 0xb0]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x78]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x40]
push 0x4afd90
push ecx
push eax
call fcn.0051c150
add esp, 0xc
movzx ecx, byte [esi + 2]
mov eax, dword [ecx*4 + 0x8d04b0]
dec eax
cmp eax, 9
ja case.default.0x64d4c1
jmp dword [eax*4 + 0x8d0250]
mov eax, dword [edi + 0x1c]
and eax, 0xfffffffc
test byte [eax], 1
je 0x64d813
mov eax, dword [eax + 8]
jmp 0x64d816
lea ecx, [esp + 0x40]
mov edi, dword [esp + 8]
mov edx, edi
push 1
call fcn.00653390
add esp, 4
mov ecx, dword [ebp + 0x18]
mov edx, 3
call fcn.00656ac0
mov esi, eax
lea ecx, [esp + 0x10]
push edi
call fcn.0051f860
test byte [esi], 1
je 0x64d52e
mov eax, dword [esi + 8]
mov byte [eax], 0
mov dword [esi + 4], 0
test byte [esi], 1
je 0x64d52e
push dword [esi + 8]
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 0x18]
mov dword [esi + 8], eax
movsd xmm0, qword [esp + 0x10]
movsd qword [esi], xmm0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
movzx ebx, byte [esp + 0x78]
mov eax, dword [esp + 0x79]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xb3], eax
mov edi, dword [esp + 0x80]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x80], 0
test byte [esi + 0xc], 1
je 0x64d5b8
mov eax, dword [esi + 0x14]
mov byte [eax], 0
mov dword [esi + 0x10], 0
test byte [esi + 0xc], 1
je 0x64d5b8
push dword [esi + 0x14]
call fcn.0051c570
add esp, 4
mov byte [esi + 0xc], bl
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb3]
mov dword [esi + 0xd], eax
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edi
movzx ebx, byte [esp + 0x40]
mov eax, dword [esp + 0x41]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xdf], eax
mov edi, dword [esp + 0x48]
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], 0
test byte [esi + 0x18], 1
je 0x64d62d
mov eax, dword [esi + 0x20]
mov byte [eax], 0
mov dword [esi + 0x1c], 0
test byte [esi + 0x18], 1
je 0x64d62d
push dword [esi + 0x20]
call fcn.0051c570
add esp, 4
mov byte [esi + 0x18], bl
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xdf]
mov dword [esi + 0x19], eax
mov dword [esi + 0x1c], ecx
mov dword [esp + 8], esi
mov dword [esi + 0x20], edi
test byte [esp + 0x10], 1
je 0x64d65e
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
test byte [esp + 0x40], 1
mov ebx, dword [esp + 4]
je 0x64d675
push dword [esp + 0x48]
call fcn.0051c570
add esp, 4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x74], 2
mov dword [esp + 0xc], 2
jmp 0x64d1cd
mov byte [ebx], 0
jmp case.default.0x64d43d
mov eax, dword [0x885e2c]
movzx eax, byte [eax]
test al, 1
je 0x64e3d7
mov eax, dword [0x8693f0]
mov dword [ebx], eax
jmp case.default.0x64d43d
xor eax, eax
xchg dword [ebx], eax
jmp case.default.0x64d43d
mov eax, dword [edi + 0x1c]
and eax, 0xfffffffc
test byte [eax], 1
je 0x64d828
mov eax, dword [eax + 8]
jmp 0x64d82b
mov eax, dword [edi + 0x1c]
and eax, 0xfffffffc
test byte [eax], 1
je 0x64d83d
mov eax, dword [eax + 8]
jmp 0x64d840
mov eax, dword [edi + 0x1c]
and eax, 0xfffffffc
test byte [eax], 1
je 0x64d85a
mov eax, dword [eax + 8]
jmp 0x64d85d
mov ecx, dword [edi + 0x1c]
and ecx, 0xfffffffc
movzx eax, byte [ecx]
test al, 1
je 0x64d87a
mov eax, dword [ecx + 4]
jmp 0x64d87c
mov ecx, dword [edi + 0x1c]
and ecx, 0xfffffffc
movzx eax, byte [ecx]
test al, 1
je 0x64d8c7
mov eax, dword [ecx + 4]
jmp 0x64d8c9
mov ecx, dword [edi + 0x1c]
and ecx, 0xfffffffc
movzx eax, byte [ecx]
test al, 1
je 0x64d90d
mov eax, dword [ecx + 4]
jmp 0x64d90f
mov dword [ebx], 0
jmp case.default.0x64d4c1
mov eax, dword [esi + 0x10]
test eax, eax
je 0x64d7a9
mov dword [esp + 0xb0], 0x6563d0
mov dword [esp + 0x78], esi
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x64d7a5
lea ecx, [esp + 0xb0]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x78]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x40]
push 0x4afd90
push ecx
push eax
call fcn.0051c150
add esp, 0xc
movzx ecx, byte [esi + 2]
cmp cl, 0xc
jne 0x64d94c
mov eax, dword [edi + 0x1c]
and eax, 0xfffffffc
lea esi, [esp + 0x10]
push eax
push esi
call fcn.0062ad30
add esp, 8
mov ecx, dword [ebp + 0x18]
mov edx, esi
call fcn.0064e3f0
mov dword [ebx], eax
test byte [esp + 0x10], 1
je 0x64d7e5
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
mov esi, dword [ebp + 0x10]
jmp case.default.0x64d4c1
mov eax, dword [esi + 8]
add eax, 0xc
mov ecx, dword [esp + 4]
push str.Messages_cant_have_default_values.
push 4
push edi
push eax
call fcn.00643220
and byte [esi + 1], 0xfe
xor eax, eax
xchg dword [esi + 0x28], eax
jmp case.default.0x64d4c1
or eax, 1
lea ecx, [esp + 0xdc]
push 0
push ecx
push eax
call sub.api_ms_win_crt_convert_l1_1_0.dll_strtol
jmp 0x64d850
or eax, 1
lea ecx, [esp + 0xdc]
push 0
push ecx
push eax
call fcn.00527130
jmp 0x64d86d
or eax, 1
lea ecx, [esp + 0xdc]
push 0
push ecx
push eax
call sub.api_ms_win_crt_convert_l1_1_0.dll_strtoul
add esp, 0xc
mov dword [ebx], eax
jmp case.default.0x64d4c1
or eax, 1
lea ecx, [esp + 0xdc]
push 0
push ecx
push eax
call fcn.006f3a00
add esp, 0xc
mov dword [ebx + 4], edx
mov dword [ebx], eax
jmp case.default.0x64d4c1
shr eax, 1
cmp eax, 3
jne 0x64d89f
push 3
push 0x8d12bb
push 0xffffffffffffffff
push 0
call fcn.00521750
test eax, eax
je 0x64d9e8
mov ecx, dword [edi + 0x1c]
and ecx, 0xfffffffc
push str._inf
push ecx
call fcn.0040c620
add esp, 8
test al, al
je 0x64d961
mov dword [ebx + 4], 0xfff00000
mov dword [ebx], 0
jmp case.default.0x64d4c1
shr eax, 1
cmp eax, 3
jne 0x64d8ec
push 3
push 0x8d12bb
push 0xffffffffffffffff
push 0
call fcn.00521750
test eax, eax
je 0x64d9f7
mov ecx, dword [edi + 0x1c]
and ecx, 0xfffffffc
push str._inf
push ecx
call fcn.0040c620
add esp, 8
test al, al
je 0x64d98b
mov dword [ebx], 0xff800000
jmp case.default.0x64d4c1
shr eax, 1
cmp eax, 4
jne 0x64d932
push 4
push 0x8d08a9
push 0xffffffffffffffff
push 0
call fcn.00521750
test eax, eax
je 0x64d9ff
mov ecx, dword [edi + 0x1c]
and ecx, 0xfffffffc
push 0x8d08ae
push ecx
call fcn.0040c620
add esp, 8
test al, al
je 0x64d9ae
mov byte [ebx], 0
jmp case.default.0x64d4c1
mov edx, dword [edi + 0x1c]
and edx, 0xfffffffc
mov ecx, dword [ebp + 0x18]
call fcn.00647e80
mov dword [ebx], eax
jmp case.default.0x64d4c1
mov eax, dword [edi + 0x1c]
and eax, 0xfffffffc
push 0x8d12c4
push eax
call fcn.0040c620
add esp, 8
test al, al
je 0x64d9c8
mov dword [ebx + 4], 0x7ff80000
mov dword [ebx], 0
jmp case.default.0x64d4c1
mov eax, dword [edi + 0x1c]
and eax, 0xfffffffc
push 0x8d12c4
push eax
call fcn.0040c620
add esp, 8
test al, al
je 0x64d9d8
mov dword [ebx], 0x7fc00000
jmp case.default.0x64d4c1
mov eax, dword [esi + 8]
add eax, 0xc
mov ecx, dword [esp + 4]
push str.Boolean_default_must_be_true_or_false.
push 4
push edi
push eax
call fcn.00643220
jmp case.default.0x64d4c1
mov eax, dword [edi + 0x1c]
and eax, 0xfffffffc
test byte [eax], 1
je 0x64da04
mov eax, dword [eax + 8]
jmp 0x64da07
mov eax, dword [edi + 0x1c]
and eax, 0xfffffffc
test byte [eax], 1
je 0x64da1c
mov eax, dword [eax + 8]
jmp 0x64da1f
mov dword [ebx + 4], 0x7ff00000
mov dword [ebx], 0
jmp case.default.0x64d4c1
mov dword [ebx], 0x7f800000
jmp case.default.0x64d4c1
mov byte [ebx], 1
jmp case.default.0x64d4c1
or eax, 1
lea ecx, [esp + 0xdc]
push ecx
push eax
call fcn.0066d550
add esp, 8
fstp qword [ebx]
jmp case.default.0x64d4c1
or eax, 1
lea ecx, [esp + 0xdc]
push ecx
push eax
call fcn.0066d550
fstp qword [esp]
call fcn.0066d4e0
add esp, 8
fstp dword [ebx]
mov ecx, dword [esp + 0xdc]
test ecx, ecx
je case.default.0x64d43d
mov eax, dword [edi + 0x1c]
and eax, 0xfffffffc
movzx edx, byte [eax]
test dl, 1
je 0x64da60
mov edx, dword [eax + 4]
test edx, edx
jne 0x64da66
jmp 0x64da6f
shr edx, 1
test edx, edx
je 0x64da6f
cmp byte [ecx], 0
je case.default.0x64d43d
mov ebx, dword [esi + 8]
add ebx, 0xc
lea esi, [esp + 0x40]
push eax
push str.Couldnt_parse_default_value__
push esi
call fcn.00523f10
add esp, 0xc
mov ecx, esi
push 0x8d0e52
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x10], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
lea eax, [esp + 0x10]
mov ecx, dword [esp + 4]
push eax
push 4
push edi
push ebx
call fcn.00643140
test byte [esp + 0x10], 1
je 0x64dade
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
test byte [esp + 0x40], 1
je 0x64daf1
push dword [esp + 0x48]
call fcn.0051c570
add esp, 4
mov esi, dword [ebp + 0x10]
mov eax, dword [esi + 4]
test eax, eax
jle 0x64dd38
cmp byte [ebp + 0x14], 0
mov ebx, dword [esp + 4]
jne 0x64dda8
cmp eax, 0x20000000
jb 0x64dda8
lea ecx, [ebx + 0x3c]
lea eax, [ebp + 0xc]
mov dword [esp + 0x10], eax
lea edx, [esp + 0x40]
lea eax, [esp + 0x10]
push edx
push eax
push 0x8d316b
lea eax, [ebp + 0xc]
push eax
call fcn.00661f00
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov edx, 0xffffffff
cmovns edx, ecx
cmp edx, 0x1ffffffe
mov ecx, 0x1ffffffe
cmovl ecx, edx
inc ecx
mov dword [eax + 0xc], ecx
cmp dword [eax + 0x10], 0
jne 0x64db69
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], 1
mov esi, dword [esi + 8]
add esi, 0xc
push 0x30
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], 0x31
mov dword [esp + 0x6c], 0x28
movsd xmm0, qword [0x8d137b]
movsd qword [eax + 0x20], xmm0
movups xmm0, xmmword [0x8d136b]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.Field_numbers_cannot_be_greater_than__0.]
movups xmmword [eax], xmm0
mov byte [eax + 0x28], 0
lea eax, [esp + 0x18]
push eax
push 0x1fffffff
call fcn.0062b510
add esp, 8
mov dword [esp + 0x10], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0xffffffff
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0xffffffff
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0xffffffff
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0xffffffff
mov dword [esp + 0x184], 0
mov dword [esp + 0x188], 0xffffffff
mov dword [esp + 0x15c], 0
mov dword [esp + 0x160], 0xffffffff
lea eax, [esp + 0x15c]
lea ecx, [esp + 0x184]
lea edx, [esp + 0x1ac]
lea ebx, [esp + 0xa4]
push eax
push ecx
push edx
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x118]
push eax
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x90]
push eax
push ebx
call fcn.00784160
add esp, 0x30
mov ecx, dword [esp + 4]
push ebx
push 1
push edi
push esi
call fcn.00643140
test byte [esp + 0xa4], 1
je 0x64dd19
push dword [esp + 0xac]
call fcn.0051c570
add esp, 4
test byte [esp + 0x68], 1
je 0x64dd2c
push dword [esp + 0x70]
call fcn.0051c570
add esp, 4
mov ebx, dword [esp + 4]
mov esi, dword [ebp + 0x10]
jmp 0x64e054
mov ebx, dword [esp + 4]
lea ecx, [ebx + 0x3c]
lea eax, [ebp + 0xc]
mov dword [esp + 0x10], eax
lea edx, [esp + 0x40]
lea esi, [esp + 0x10]
push edx
push esi
push 0x8d316b
push eax
call fcn.00661f00
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov edx, 0xffffffff
cmovns edx, ecx
cmp edx, 0x1ffffffe
mov ecx, 0x1ffffffe
cmovl ecx, edx
inc ecx
mov dword [eax + 0xc], ecx
cmp dword [eax + 0x10], 0
jne 0x64dd8a
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], 1
mov esi, dword [ebp + 0x10]
mov eax, dword [esi + 8]
add eax, 0xc
mov ecx, ebx
push str.Field_numbers_must_be_positive_integers.
push 1
push edi
push eax
call fcn.00643220
jmp 0x64e007
add eax, 0xffffb5c8
cmp eax, 0x3e7
ja 0x64e007
lea ecx, [ebx + 0x3c]
lea eax, [ebp + 0xc]
mov dword [esp + 0x10], eax
lea edx, [esp + 0x40]
lea eax, [esp + 0x10]
push edx
push eax
push 0x8d316b
lea eax, [ebp + 0xc]
push eax
call fcn.00661f00
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov edx, 0xffffffff
cmovns edx, ecx
cmp edx, 0x1ffffffe
mov ecx, 0x1ffffffe
cmovl ecx, edx
inc ecx
mov dword [eax + 0xc], ecx
cmp dword [eax + 0x10], 0
jne 0x64de09
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], 1
mov esi, dword [esi + 8]
add esi, 0xc
push 0x60
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], 0x61
mov dword [esp + 0x6c], 0x58
movsd xmm0, qword [0x8d13d4]
movsd qword [eax + 0x50], xmm0
movups xmm0, xmmword [0x8d13c4]
movups xmmword [eax + 0x40], xmm0
movups xmm0, xmmword [0x8d13b4]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [0x8d13a4]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x8d1394]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.Field_numbers__0_through__1_are_reserved_for_the_protocol_buffer_library_implementation.]
movups xmmword [eax], xmm0
mov byte [eax + 0x58], 0
lea eax, [esp + 0x18]
push eax
push 0x4a38
call fcn.0062b510
add esp, 8
mov dword [esp + 0x10], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x14], eax
lea eax, [esp + 0x48]
push eax
push 0x4e1f
call fcn.0062b510
add esp, 8
mov dword [esp + 0x40], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0xffffffff
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0xffffffff
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0xffffffff
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0xffffffff
mov dword [esp + 0x184], 0
mov dword [esp + 0x188], 0xffffffff
mov dword [esp + 0x15c], 0
mov dword [esp + 0x160], 0xffffffff
lea eax, [esp + 0x15c]
lea ecx, [esp + 0x184]
lea edx, [esp + 0x1ac]
lea ebx, [esp + 0xa4]
push eax
push ecx
push edx
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x118]
push eax
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x90]
push eax
push ebx
call fcn.00784160
add esp, 0x30
mov ecx, dword [esp + 4]
push ebx
push 1
push edi
push esi
call fcn.00643140
test byte [esp + 0xa4], 1
je 0x64dfed
push dword [esp + 0xac]
call fcn.0051c570
add esp, 4
test byte [esp + 0x68], 1
je 0x64e000
push dword [esp + 0x70]
call fcn.0051c570
add esp, 4
mov ebx, dword [esp + 4]
mov esi, dword [ebp + 0x10]
cmp byte [ebp + 0x14], 0
je 0x64e054
test byte [edi + 8], 2
jne 0x64e029
mov eax, dword [esi + 8]
add eax, 0xc
mov ecx, ebx
push str.FieldDescriptorProto.extendee_not_set_for_extension_field.
push 3
push edi
push eax
call fcn.00643220
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x18], eax
test byte [edi + 8], 0x80
je 0x64e295
mov eax, dword [esi + 8]
add eax, 0xc
mov ecx, ebx
push str.FieldDescriptorProto.oneof_index_should_not_be_set_for_extensions.
push 2
push edi
push eax
call fcn.00643220
jmp 0x64e295
test byte [edi + 8], 2
je 0x64e070
mov eax, dword [esi + 8]
add eax, 0xc
mov ecx, ebx
push str.FieldDescriptorProto.extendee_set_for_non_extension_field.
push 3
push edi
push eax
call fcn.00643220
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x14], eax
test byte [edi + 8], 0x80
je 0x64e295
mov ecx, dword [edi + 0x2c]
test ecx, ecx
js 0x64e0a4
cmp ecx, dword [eax + 0x38]
jge 0x64e0a4
or byte [esi + 1], 0x10
mov ecx, dword [edi + 0x2c]
lea ecx, [ecx + ecx*2]
shl ecx, 3
add ecx, dword [eax + 0x1c]
mov dword [esi + 0x18], ecx
jmp 0x64e295
mov esi, dword [esi + 8]
push 0x50
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], 0x51
mov dword [esp + 0x6c], 0x42
movups xmm0, xmmword [0x8d14c6]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [0x8d14b6]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x8d14a6]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.FieldDescriptorProto.oneof_index__0_is_out_of_range_for_type___1_.]
movups xmmword [eax], xmm0
mov word [eax + 0x40], 0x2e22
mov byte [eax + 0x42], 0
lea eax, [esp + 0x18]
push eax
push dword [edi + 0x2c]
call fcn.0062b510
add esp, 8
mov dword [esp + 0x10], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 8]
test byte [eax], 1
je 0x64e12b
mov ecx, dword [eax + 8]
jmp 0x64e12e
lea ecx, [eax + 1]
add esi, 0xc
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax]
test cl, 1
je 0x64e142
mov ecx, dword [eax + 4]
jmp 0x64e144
shr ecx, 1
mov dword [esp + 0x44], ecx
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0xffffffff
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0xffffffff
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0xffffffff
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0xffffffff
mov dword [esp + 0x184], 0
mov dword [esp + 0x188], 0xffffffff
mov dword [esp + 0x15c], 0
mov dword [esp + 0x160], 0xffffffff
lea eax, [esp + 0x15c]
lea ecx, [esp + 0x184]
lea edx, [esp + 0x1ac]
lea ebx, [esp + 0xa4]
push eax
push ecx
push edx
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x118]
push eax
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x90]
push eax
push ebx
call fcn.00784160
add esp, 0x30
mov ecx, dword [esp + 4]
push ebx
push 2
push edi
push esi
call fcn.00643140
test byte [esp + 0xa4], 1
je 0x64e27b
push dword [esp + 0xac]
call fcn.0051c570
add esp, 4
test byte [esp + 0x68], 1
mov esi, dword [ebp + 0x10]
je 0x64e291
push dword [esp + 0x70]
call fcn.0051c570
add esp, 4
mov ebx, dword [esp + 4]
mov dword [esi + 0x20], 0
test byte [edi + 8], 0x20
je 0x64e39a
mov esi, dword [edi + 0x24]
test esi, esi
jne 0x64e2b3
mov esi, dword [0x8d3308]
push 0x20
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], 0x21
mov dword [esp + 0x44], 0x1c
movups xmm0, xmmword [0x8d14e5]
movups xmmword [eax + 0xc], xmm0
movups xmm0, xmmword [str.google.protobuf.FieldOptions]
movups xmmword [eax], xmm0
mov byte [eax + 0x1c], 0
mov dword [esp + 0xb0], 8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
lea eax, [esp + 0x10]
mov ecx, dword [ebp + 0x10]
push eax
call fcn.00641610
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
je 0x64e333
mov ebx, edi
mov dword [eax], 8
add dword [esp + 0x14], 4
jmp 0x64e346
mov ebx, edi
lea eax, [esp + 0xb0]
lea ecx, [esp + 0x10]
push eax
call fcn.00420d20
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 8]
add eax, 0xc
lea edx, [esp + 0x40]
mov ecx, dword [esp + 4]
push dword [ebp + 0x18]
push edx
lea edx, [esp + 0x18]
push edx
push edi
push esi
push eax
push eax
call fcn.00662430
mov eax, dword [esp + 0x10]
test eax, eax
je 0x64e37e
mov dword [esp + 0x14], eax
push eax
call fcn.0051c570
add esp, 4
test byte [esp + 0x40], 1
mov edi, ebx
je 0x64e393
push dword [esp + 0x48]
call fcn.0051c570
add esp, 4
mov ebx, dword [esp + 4]
mov esi, dword [ebp + 0x10]
mov eax, dword [esi + 8]
add eax, 0xc
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x104], esi
mov byte [esi], 2
sub esp, 0x14
mov edx, dword [esp + 0x118]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], ecx
mov dword [esp], eax
mov ecx, ebx
call fcn.006454a0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
call fcn.005532c0
jmp 0x64d6aa