Function at 0x655910
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov edi, ecx
mov ebx, dword [ebp + 8]
mov eax, dword [ecx + 8]
test byte [eax + 8], 4
jne 0x65598a
mov eax, dword [ebx + 8]
add eax, 0xc
lea esi, [esp + 0x70]
push eax
push str.Option__
push esi
call fcn.00523f10
add esp, 0xc
mov ecx, esi
push str.__is_a_message._To_set_the_entire_message__use_syntax_like__
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x28], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x20], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, dword [ebx + 8]
movzx edx, byte [eax]
test dl, 1
je 0x6559fd
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x655a00
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x6559c7
mov dword [esp + 0x10], ebx
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x6559c7
mov dword [esp + 0x50], 0x6563d0
lea ecx, [esp + 0x10]
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x38]
push 0x664bd0
push ecx
push eax
call fcn.0051c150
add esp, 0xc
movzx ecx, byte [ebx + 2]
and cl, 0xfe
xor eax, eax
cmp cl, 0xa
jne 0x6559d8
mov eax, dword [ebx + 0x1c]
lea ecx, [edi + 0x24]
push eax
call fcn.00668aa0
mov edx, dword [eax]
mov ecx, eax
push 0
call dword [edx + 0xc]
test eax, eax
mov dword [esp + 0x2c], eax
je 0x655b8d
mov esi, eax
jmp 0x655c0d
inc eax
shr edx, 1
lea ecx, [esp + 0x20]
push edx
push eax
call fcn.00520110
mov ecx, dword [eax + 8]
mov dword [esp + 8], ecx
movsd xmm0, qword [eax]
movsd qword [esp], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov ecx, esp
push str.____proto_text_format___._To_set_fields_within_it__use_syntax_like__
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 + 4], 0
mov dword [eax + 8], 0
mov eax, dword [ebx + 8]
movzx edx, byte [eax]
test dl, 1
je 0x655a73
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x655a76
inc eax
shr edx, 1
lea ecx, [esp + 0x10]
push edx
push eax
call fcn.00520110
mov ecx, dword [eax + 8]
mov dword [esp + 0x40], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x38], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
lea ecx, [esp + 0x38]
push str..foo__value_.
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x58], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x50], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov ecx, dword [edi]
mov eax, dword [edi + 4]
add eax, 0xc
lea edx, [esp + 0x50]
push edx
push 8
push dword [edi + 8]
push eax
call fcn.00643140
test byte [esp + 0x50], 1
jne 0x655b2d
test byte [esp + 0x38], 1
jne 0x655b40
test byte [esp + 0x10], 1
jne 0x655b53
test byte [esp], 1
jne 0x655b65
test byte [esp + 0x20], 1
jne 0x655b78
test byte [esp + 0x70], 1
je 0x655b26
push dword [esp + 0x78]
call fcn.0051c570
add esp, 4
xor ebx, ebx
jmp 0x655f23
push dword [esp + 0x58]
call fcn.0051c570
add esp, 4
test byte [esp + 0x38], 1
je 0x655aff
push dword [esp + 0x40]
call fcn.0051c570
add esp, 4
test byte [esp + 0x10], 1
je 0x655b06
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
test byte [esp], 1
je 0x655b0c
push dword [esp + 8]
call fcn.0051c570
add esp, 4
test byte [esp + 0x20], 1
je 0x655b13
push dword [esp + 0x28]
call fcn.0051c570
add esp, 4
test byte [esp + 0x70], 1
jne 0x655b1a
jmp 0x655b26
lea ebx, [esp + 0x50]
mov ecx, ebx
push 0x1f66
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, ebx
push str.CHECK_failed:_dynamic.get_____nullptr:
call fcn.0062ff70
mov ecx, eax
push str.Could_not_create_an_instance_of
call fcn.0062ff70
mov ebx, eax
mov byte [esp + 0x12], 0
mov word [esp + 0x10], 0
lea eax, [esp + 0x10]
lea esi, [esp + 0x38]
mov ecx, esi
push eax
push dword [ebp + 8]
call fcn.006400b0
mov ecx, ebx
push esi
call fcn.0062ff90
mov ecx, esp
push eax
call fcn.006300f0
test byte [esp + 0x38], 1
je 0x655c00
push dword [esp + 0x40]
call fcn.0051c570
add esp, 4
lea ecx, [esp + 0x50]
call fcn.00630770
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x10], 0x8d3110
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x70], 0x8d328c
mov eax, dword [edi]
mov dword [esp + 0x74], eax
xorps xmm0, xmm0
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
lea ebx, [esp + 0x50]
mov ecx, ebx
call fcn.004a3520
lea eax, [esp + 0x10]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x28]
and eax, 0xfffffffc
mov ecx, ebx
push esi
push eax
call fcn.004a3830
mov ebx, eax
test al, al
je 0x655d1b
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], 0
mov ecx, esi
mov esi, esp
push esi
call fcn.004a1a90
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
test eax, eax
je 0x655cf6
mov dword [esp + 0x34], 0x6563d0
mov dword [esp + 0x30], edx
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x655cf3
lea ecx, [esp + 0x34]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x30]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x20]
push 0x4afd90
push ecx
push eax
call fcn.0051c150
add esp, 0xc
mov edx, dword [ebp + 8]
mov edi, ebx
mov ecx, dword [ebp + 0xc]
movzx ebx, byte [edx + 2]
cmp bl, 0xb
jne 0x655d7d
push dword [edx + 4]
call fcn.00530890
mov ecx, eax
push esi
call fcn.0051fbb0
mov ebx, edi
jmp 0x655ecc
lea esi, [esp + 0x20]
mov eax, dword [ebp + 8]
push dword [eax + 8]
push str.Error_while_parsing_option_value_for__
push esi
call fcn.00523f10
add esp, 0xc
mov ecx, esi
push 0x8d2b6c
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 8], ecx
movsd xmm0, qword [eax]
movsd qword [esp], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
movzx eax, byte [esp + 0x14]
test al, 1
je 0x655e2c
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
jmp 0x655e32
mov eax, dword [edx + 0x10]
test eax, eax
je 0x655dc9
mov dword [esp + 0x34], 0x6563d0
mov dword [esp + 0x30], edx
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x655dc2
lea ecx, [esp + 0x34]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x30]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x20]
push 0x4afd90
push ecx
push eax
call fcn.0051c150
add esp, 0xc
mov eax, dword [ebp + 8]
movzx ebx, byte [eax + 2]
cmp bl, 0xa
je 0x655e02
lea esi, [esp + 0x38]
mov ecx, esi
push 0x1f7a
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.CHECK_failed:__option_field__type______FieldDescriptor::TYPE_GROUP_:
call fcn.0062ff70
lea ecx, [esp + 0x20]
push eax
call fcn.006300f0
mov ecx, esi
call fcn.00630770
mov ecx, dword [ebp + 0xc]
mov ebx, edi
mov eax, dword [ebp + 8]
push dword [eax + 4]
call fcn.00530910
movzx edx, byte [esp]
test dl, 1
je 0x655ebd
mov esi, dword [esp + 8]
mov edx, dword [esp + 4]
jmp 0x655ec3
shr eax, 1
lea edx, [esp + 0x15]
mov ecx, esp
push eax
push edx
call fcn.00520110
mov ecx, dword [eax + 8]
mov dword [esp + 0x40], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x38], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov ecx, dword [edi]
mov eax, dword [edi + 4]
add eax, 0xc
lea edx, [esp + 0x38]
push edx
push 8
push dword [edi + 8]
push eax
call fcn.00643140
test byte [esp + 0x38], 1
mov esi, dword [esp + 0x2c]
jne 0x655e92
test byte [esp], 1
jne 0x655ea4
test byte [esp + 0x20], 1
jne 0x655eb7
jmp 0x655ee2
push dword [esp + 0x40]
call fcn.0051c570
add esp, 4
test byte [esp], 1
je 0x655e89
push dword [esp + 8]
call fcn.0051c570
add esp, 4
test byte [esp + 0x20], 1
je 0x655ee2
push dword [esp + 0x28]
jmp 0x655eda
shr edx, 1
lea esi, [esp + 1]
mov ecx, eax
push edx
push esi
call fcn.00530d00
test byte [esp], 1
mov esi, dword [esp + 0x2c]
je 0x655ee2
push dword [esp + 8]
call fcn.0051c570
add esp, 4
lea ecx, [esp + 0x50]
call fcn.004a3540
lea ecx, [esp + 0x70]
call fcn.004a33f0
mov dword [esp + 0x10], 0x8d3110
test byte [esp + 0x14], 1
je 0x655f0f
push dword [esp + 0x1c]
call fcn.0051c570
add esp, 4
lea ecx, [esp + 0x10]
call fcn.00664c10
test esi, esi
je 0x655f23
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8