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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb8
mov esi, ecx
mov eax, dword [ecx + 8]
cmp dword [eax + 0x14], 0
je 0x653577
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x10]
and ecx, 0xfffffffc
movzx eax, byte [ecx]
test al, 1
je 0x6535b5
mov eax, dword [ecx + 4]
cmp eax, 0x14
je 0x6535bc
jmp 0x6535d0
push 0x20
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], 0x21
mov dword [esp + 0x1c], 0x18
movsd xmm0, qword [0x8d24da]
movsd qword [eax + 0x10], xmm0
movups xmm0, xmmword [str.Option_must_have_a_name.]
movups xmmword [eax], xmm0
mov byte [eax + 0x18], 0
jmp 0x65365f
shr eax, 1
cmp eax, 0x14
jne 0x6535d0
push 0x14
push 0x8d24e3
push 0xffffffffffffffff
push 0
call fcn.00521750
test eax, eax
je 0x653612
mov ecx, dword [ebp + 8]
mov edi, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x40]
mov eax, dword [eax + 8]
add eax, 0xc
mov ecx, edi
push 1
push eax
push dword [edi]
call fcn.006439c0
mov dword [esp], eax
movzx ebx, byte [eax]
xor ecx, ecx
mov edx, ebx
dec edx
cmp edx, 9
ja case.0x653600.6
jmp dword [edx*4 + 0x8d02a0]
mov eax, dword [esp]
mov ecx, dword [eax + 0xc]
jmp case.0x653600.6
push 0x40
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], 0x41
mov dword [esp + 0x1c], 0x39
movups xmm0, xmmword [0x8d2521]
movups xmmword [eax + 0x29], xmm0
movups xmm0, xmmword [0x8d2518]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x8d2508]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.Option_must_not_use_reserved_name__uninterpreted_option_.]
movups xmmword [eax], xmm0
mov byte [eax + 0x39], 0
mov ecx, dword [esi]
mov eax, dword [esi + 4]
add eax, 0xc
lea edx, [esp + 0x18]
push edx
push 7
push dword [esi + 8]
push eax
call fcn.00643140
test byte [esp + 0x18], 1
je 0x65368a
push dword [esp + 0x20]
call fcn.0051c570
add esp, 4
xor ebx, ebx
jmp 0x6545ae
mov eax, dword [esp]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0xc]
jmp case.0x653600.6
mov eax, dword [esp]
mov ecx, dword [eax + 8]
jmp case.0x653600.6
mov eax, dword [esp]
mov ecx, dword [eax + 8]
mov ecx, dword [ecx + 8]
jmp case.0x653600.6
mov ecx, dword [esp]
cmp ecx, dword [edi + 0x28]
mov dword [esp + 4], esi
je 0x6536d8
mov edx, dword [edi + 0x34]
jmp 0x6536c2
mov edx, dword [edx]
test edx, edx
je 0x65377d
mov esi, dword [edx + 0x10]
cmp ecx, esi
jb 0x6536c0
jbe 0x6536d8
add edx, 4
jmp 0x6536c0
mov edx, dword [edi + 0x54]
test edx, edx
je 0x65377d
mov dword [esp + 0x34], ebx
lea ebx, [edi + 0x54]
mov esi, ebx
mov dword [esp + 0x84], edx
nop word cs:[eax + eax]
lea eax, [edx + 4]
cmp dword [edx + 0x10], ecx
cmovae eax, edx
cmovae esi, edx
mov edx, dword [eax]
test edx, edx
jne 0x653700
cmp esi, ebx
je 0x65373a
cmp ecx, dword [esi + 0x10]
mov ebx, dword [esp + 0x34]
jb 0x65377d
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x653740
mov edx, dword [esp + 0x84]
nop dword [eax]
mov eax, ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x653730
jmp 0x653759
mov ebx, dword [esp + 0x34]
jmp 0x65377d
mov ecx, esi
mov edx, dword [esp + 0x84]
nop dword [eax]
mov eax, dword [ecx + 8]
cmp dword [eax], ecx
mov ecx, eax
jne 0x653750
cmp dword [edi + 0x50], esi
jne 0x653761
mov dword [edi + 0x50], eax
dec dword [edi + 0x58]
push esi
push edx
call fcn.004583d0
add esp, 8
push esi
call fcn.0051c570
add esp, 4
mov eax, dword [esp]
movzx ebx, byte [eax]
mov esi, dword [ebp + 0x10]
cmp bl, 1
je 0x6537cf
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x40]
mov dword [esp], eax
test eax, eax
jne 0x6537cf
lea edi, [esp + 0x18]
mov ecx, edi
push 0x1ce5
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, edi
push str.CHECK_failed:_options_descriptor:
call fcn.0062ff70
lea ecx, [esp + 0x58]
push eax
call fcn.006300f0
mov ecx, edi
call fcn.00630770
mov dword [esp], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], 0
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov ebx, eax
sub ebx, ecx
sub eax, ecx
je 0x65386e
js 0x6545ba
sar ebx, 2
push eax
call fcn.0051c3d0
add esp, 4
mov edi, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
lea eax, [eax + ebx*4]
mov dword [esp + 0x40], eax
mov eax, dword [esi]
mov esi, dword [esi + 4]
sub esi, eax
test esi, esi
jle 0x65386e
push esi
push eax
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
add edi, esi
mov dword [esp + 0x3c], edi
mov ebx, dword [esp + 4]
mov eax, dword [ebx + 8]
cmp dword [eax + 0x14], 0
jle 0x653c0b
xor edi, edi
lea esi, [esp + 0x78]
jmp 0x6538a3
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x14]
mov edi, dword [esp + 0x34]
inc edi
cmp edi, eax
jge 0x653c0b
mov eax, dword [ebx]
test byte [eax + 0x6c], 1
jne 0x6538c0
mov word [eax + 0x6c], 0
jmp 0x6538cd
mov ecx, dword [eax + 0x74]
mov byte [ecx], 0
mov dword [eax + 0x70], 0
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + edi*4 + 4]
mov ebx, dword [eax + 0x10]
movzx ecx, byte [esp + 0x78]
test cl, 1
je 0x6538f0
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x6538f6
jmp 0x653910
shr ecx, 1
test ecx, ecx
je 0x653910
mov ecx, esi
push 0x8d0947
call fcn.00520360
mov eax, dword [esp + 4]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + edi*4 + 4]
mov dword [esp + 0x34], edi
and ebx, 0xfffffffc
cmp byte [eax + 0x14], 0
je 0x653980
push ebx
push 0x8d2555
lea edi, [esp + 0x10]
push edi
call fcn.00523f10
add esp, 0xc
mov ecx, edi
push 0x8d2557
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x20], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x18], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
movzx eax, byte [esp + 0x18]
test al, 1
je 0x6539a0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
jmp 0x6539a6
movzx eax, byte [ebx]
lea edi, [ebx + 1]
test al, 1
je 0x653a1a
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
jmp 0x653a1e
shr eax, 1
lea edx, [esp + 0x19]
mov ecx, esi
push eax
push edx
call fcn.00520110
test byte [esp + 0x18], 1
je 0x6539c2
push dword [esp + 0x20]
call fcn.0051c570
add esp, 4
test byte [esp + 8], 1
je 0x6539d5
push dword [esp + 0x10]
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 4]
mov edi, dword [eax]
mov ecx, edi
push 1
push 0
push dword [eax + 4]
push ebx
call fcn.00643f80
cmp byte [eax], 0
je 0x653a00
mov edi, dword [esp + 0x34]
jmp 0x653abd
mov ecx, dword [edi]
cmp byte [ecx + 0x16], 0
mov edi, dword [esp + 0x34]
je 0x653abd
test byte [ebx], 1
je 0x653a81
mov eax, dword [ebx + 8]
jmp 0x653a84
shr eax, 1
mov edx, edi
mov ecx, esi
push eax
push edx
call fcn.00520110
movzx eax, byte [ebx]
mov edx, eax
shr edx, 1
test al, 1
mov esi, dword [esp]
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x50]
cmovne edi, dword [ebx + 8]
mov dword [esp + 0x18], edi
cmovne edx, dword [ebx + 4]
mov dword [esp + 0x1c], edx
sub esp, 0xc
movsd xmm0, qword [esp + 0x24]
movsd qword [esp + 4], xmm0
mov dword [esp], esi
call fcn.0065a820
cmp byte [eax], 2
jne 0x653f11
test byte [eax + 1], 8
jne 0x653f11
mov ebx, dword [esp + 4]
lea esi, [esp + 0x78]
mov edi, dword [esp + 0x34]
jmp 0x653aca
lea eax, [ebx + 1]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
movzx eax, byte [ebx]
test al, 1
je 0x653a9c
mov eax, dword [ebx + 4]
jmp 0x653a9e
shr eax, 1
mov dword [esp + 0x1c], eax
sub esp, 0xc
movsd xmm0, qword [esp + 0x24]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
call fcn.00644290
cmp byte [eax], 2
mov ebx, dword [esp + 4]
jne 0x653f19
mov dword [esp + 0x30], eax
mov ecx, dword [eax + 0x14]
cmp ecx, dword [esp]
jne 0x653ea6
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x3c]
cmp ecx, dword [esp + 0x40]
jae 0x653b00
mov dword [ecx], eax
add dword [esp + 0x3c], 4
jmp 0x653b0e
lea ecx, [esp + 0x38]
lea eax, [esp + 0x18]
push eax
call fcn.00660e00
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x14]
lea ecx, [eax - 1]
cmp edi, ecx
jge 0x65389a
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x653b68
mov dword [esp + 0x48], 0x6563d0
mov dword [esp + 0x68], edi
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x653b68
lea ecx, [esp + 0x48]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x18]
mov dword [esp + 8], ecx
push 0x4afd90
lea ecx, [esp + 0xc]
push ecx
push eax
call fcn.0051c150
add esp, 0xc
movzx eax, byte [edi + 2]
and al, 0xfe
cmp al, 0xa
jne 0x653f51
mov eax, dword [esp + 0x30]
movzx ecx, byte [eax + 1]
not cl
test cl, 0x60
je 0x653f6d
mov ecx, dword [esp + 0x5c]
cmp ecx, dword [esp + 0x60]
je 0x653b9c
mov dword [ecx], eax
add dword [esp + 0x5c], 4
jmp 0x653baa
lea ecx, [esp + 0x58]
lea eax, [esp + 0x30]
push eax
call fcn.00552d10
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x653beb
mov dword [esp + 0x48], edi
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x653beb
mov dword [esp + 0x18], 0x6563d0
lea ecx, [esp + 0x48]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x18]
mov dword [esp + 8], ecx
push 0x664bd0
lea ecx, [esp + 0xc]
push ecx
push eax
call fcn.0051c150
add esp, 0xc
movzx eax, byte [edi + 2]
and al, 0xfe
mov dword [esp], 0
cmp al, 0xa
jne 0x653890
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
jmp 0x653890
mov esi, dword [esp + 0x30]
movzx eax, byte [esi + 1]
not al
test al, 0x60
je 0x653c69
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], ecx
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x40]
mov ecx, edx
push edi
call fcn.00544e70
mov edx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
lea ebx, [esp + 0x78]
mov ecx, dword [esp + 4]
push eax
push ebx
push esi
push edx
push edi
call fcn.006546b0
test al, al
je 0x65456c
push 0xc
call fcn.0051c3d0
add esp, 4
mov ebx, eax
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov ecx, dword [esp + 4]
push eax
push dword [esp + 0x34]
call fcn.00654a00
test al, al
je 0x653e99
mov esi, dword [esp + 0x5c]
cmp esi, dword [esp + 0x58]
jne 0x653d45
mov edi, ebx
mov esi, edi
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x40]
mov ecx, edx
push edi
mov edi, esi
call fcn.00544ea0
mov ecx, eax
push esi
call fcn.00530520
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 1]
not al
test al, 0x60
mov ebx, dword [esp + 4]
jne 0x6542d7
lea ecx, [ebx + 0x18]
lea eax, [esp + 0x38]
mov dword [esp + 0x18], eax
lea edx, [esp + 8]
lea edi, [esp + 0x18]
push edx
push edi
push 0x8d316b
push eax
call fcn.00664630
mov ecx, dword [eax + 0x1c]
lea edx, [ecx + 1]
mov dword [eax + 0x1c], edx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x40]
je 0x6542cb
mov dword [eax], ecx
add dword [esp + 0x3c], 4
jmp 0x6542d5
push ebx
call fcn.0051c570
add esp, 4
mov ebx, edi
cmp esi, dword [esp + 0x58]
je 0x653caf
push 0xc
call fcn.0051c3d0
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov ecx, esi
mov esi, eax
mov dword [eax + 8], 0
mov dword [esp], ecx
mov edi, dword [ecx - 4]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x653db2
mov dword [esp + 0x48], 0x6563d0
mov dword [esp + 0x68], edi
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x653db2
lea ecx, [esp + 0x48]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x18]
mov dword [esp + 8], ecx
push 0x4afd90
lea ecx, [esp + 0xc]
push ecx
push eax
call fcn.0051c150
add esp, 0xc
movzx eax, byte [edi + 2]
cmp eax, 0xa
je 0x653e50
cmp eax, 0xb
mov edi, esi
jne 0x6540d6
mov eax, dword [esp]
mov eax, dword [eax - 4]
mov ecx, edi
push dword [eax + 4]
call fcn.00530890
mov ecx, ebx
push eax
call fcn.00530de0
test al, al
jne 0x653e6a
lea esi, [esp + 0x18]
mov ecx, esi
push 0x1d6c
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.CHECK_failed:_unknown_fields__SerializeToString_outstr_:
call fcn.0062ff70
mov ecx, eax
push str.Unexpected_failure_while_serializing_option_submessage
call fcn.0062ff70
mov ecx, eax
lea eax, [esp + 0x78]
push eax
call fcn.0062ff90
mov ecx, eax
push 0x8d0e52
call fcn.0062ff70
lea ecx, [esp + 8]
push eax
call fcn.006300f0
mov ecx, esi
call fcn.00630770
jmp 0x653e6a
mov eax, dword [esp]
mov eax, dword [eax - 4]
mov edi, esi
mov ecx, esi
push dword [eax + 4]
call fcn.00530910
mov ecx, eax
push ebx
call fcn.00530520
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
je 0x653e7a
mov ecx, ebx
call fcn.005302c0
mov eax, dword [ebx]
mov esi, dword [esp]
add esi, 0xfffffffc
test eax, eax
je 0x653d30
mov dword [ebx + 4], eax
push eax
call fcn.0051c570
add esp, 4
jmp 0x653d30
mov dword [esp + 4], 0
jmp 0x65431a
test ecx, ecx
je 0x653eb0
test byte [ecx + 1], 1
jne 0x653f2b
push esi
push str.Option_field__
lea esi, [esp + 0x70]
push esi
call fcn.00523f10
add esp, 0xc
mov ecx, esi
push str.__is_not_a_field_or_extension_of_message__
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x50], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x48], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, dword [esp]
mov eax, dword [eax + 8]
movzx edx, byte [eax]
test dl, 1
je 0x653ff0
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x653ff3
mov ebx, dword [esp + 4]
lea esi, [esp + 0x78]
mov dword [esp + 0x30], 0
mov ecx, dword [ebx]
mov eax, dword [ecx]
cmp byte [eax + 0x16], 0
je 0x653f3d
push dword [ebp + 8]
push dword [ebx + 8]
call 0x6545d0
mov bl, 1
jmp 0x65456e
movzx eax, byte [ecx + 0x6c]
test al, 1
je 0x6541a9
mov eax, dword [ecx + 0x70]
jmp 0x6541ab
push esi
push str.Option__
lea esi, [esp + 0x10]
push esi
call fcn.00523f10
add esp, 0xc
mov ecx, esi
push str.__is_an_atomic_type__not_a_message.
jmp 0x653f87
push esi
push str.Option_field__
lea esi, [esp + 0x10]
push esi
call fcn.00523f10
add esp, 0xc
mov ecx, esi
push str.__is_a_repeated_message._Repeated_message_options_must_be_initialized_using_an_aggregate_value.
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x20], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x18], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
add eax, 0xc
lea edx, [esp + 0x18]
push edx
push 7
push dword [ebx + 8]
push eax
call fcn.00643140
test byte [esp + 0x18], 1
je 0x653fdc
push dword [esp + 0x20]
call fcn.0051c570
add esp, 4
test byte [esp + 8], 1
je 0x65456c
push dword [esp + 0x10]
jmp 0x654564
inc eax
shr edx, 1
lea ecx, [esp + 0x48]
push edx
push eax
call fcn.00520110
mov ecx, dword [eax + 8]
mov dword [esp + 0x10], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 8], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
lea ecx, [esp + 8]
push 0x8d0e52
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x20], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x18], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
add eax, 0xc
lea edx, [esp + 0x18]
push edx
push 7
push dword [ebx + 8]
push eax
call fcn.00643140
test byte [esp + 0x18], 1
jne 0x654090
test byte [esp + 8], 1
jne 0x6540a3
test byte [esp + 0x48], 1
jne 0x6540b6
test byte [esp + 0x68], 1
je 0x65456c
jmp 0x6540cd
push dword [esp + 0x20]
call fcn.0051c570
add esp, 4
test byte [esp + 8], 1
je 0x65407c
push dword [esp + 0x10]
call fcn.0051c570
add esp, 4
test byte [esp + 0x48], 1
je 0x654083
push dword [esp + 0x50]
call fcn.0051c570
add esp, 4
test byte [esp + 0x68], 1
je 0x65456c
push dword [esp + 0x70]
jmp 0x654564
lea esi, [esp + 0x18]
mov ecx, esi
push 0x1d79
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.Invalid_wire_type_for_CPPTYPE_MESSAGE:
call fcn.0062ff70
mov edx, eax
mov eax, dword [esp]
mov esi, dword [eax - 4]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x654154
mov dword [esp + 0x68], 0x6563d0
mov dword [esp + 0x88], esi
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x654154
lea ecx, [esp + 0x68]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x88]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 8]
mov dword [esp + 0x48], ecx
push 0x4afd90
lea ecx, [esp + 0x4c]
push ecx
push eax
mov dword [esp + 0x10], edx
call fcn.0051c150
mov edx, dword [esp + 0x10]
add esp, 0xc
movzx eax, byte [esi + 2]
mov ecx, edx
push eax
call fcn.00630540
lea ecx, [esp + 8]
push eax
call fcn.006300f0
lea ecx, [esp + 0x18]
call fcn.00630770
mov eax, dword [edi]
cmp eax, dword [edi + 4]
je 0x654183
mov ecx, edi
call fcn.005302c0
mov eax, dword [edi]
test eax, eax
je 0x654193
mov dword [edi + 4], eax
push eax
call fcn.0051c570
add esp, 4
push edi
call fcn.0051c570
add esp, 4
mov dword [esp + 4], 0
jmp 0x65431a
shr eax, 1
test eax, eax
je 0x654216
lea edi, [esp + 0xa8]
push esi
push str.Option__
push edi
call fcn.00523f10
add esp, 0xc
mov ecx, edi
push str.__is_resolved_to___
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x90], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x88], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, dword [ebx]
movzx edx, byte [eax + 0x6c]
test dl, 1
je 0x65434c
mov edx, dword [eax + 0x70]
mov eax, dword [eax + 0x74]
jmp 0x654351
push esi
push str.Option__
lea esi, [esp + 0x50]
push esi
call fcn.00523f10
add esp, 0xc
mov ecx, esi
push str.__unknown._Ensure_that_your_proto
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x10], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 8], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
lea ecx, [esp + 8]
push str._definition_file_imports_the_proto_which_defines_the_option.
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x20], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x18], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
add eax, 0xc
lea edx, [esp + 0x18]
push edx
push 7
push dword [ebx + 8]
push eax
call fcn.00643140
test byte [esp + 0x18], 1
jne 0x654536
test byte [esp + 8], 1
jne 0x65454d
test byte [esp + 0x48], 1
je 0x65456c
jmp 0x654560
lea ecx, [esp + 0x38]
push edi
call fcn.00420d20
mov edi, esi
add ebx, 0xc
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x18], esi
lea eax, [esp + 8]
lea edx, [esp + 0x18]
mov ecx, ebx
push eax
push edx
push 0x8d316b
push esi
call fcn.006647e0
add eax, 0x1c
mov cl, 1
mov dword [esp + 4], ecx
lea ecx, [esp + 0x38]
cmp eax, ecx
je 0x654318
mov ecx, eax
push dword [esp + 0x3c]
push dword [esp + 0x3c]
call fcn.006649a0
mov ebx, edi
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
je 0x65432a
mov ecx, ebx
call fcn.005302c0
mov eax, dword [ebx]
test eax, eax
je 0x65433a
mov dword [ebx + 4], eax
push eax
call fcn.0051c570
add esp, 4
push ebx
call fcn.0051c570
add esp, 4
mov ebx, dword [esp + 4]
jmp 0x65456e
add eax, 0x6d
shr edx, 1
lea ecx, [esp + 0x88]
push edx
push eax
call fcn.00520110
mov ecx, dword [eax + 8]
mov dword [esp + 0x70], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x68], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
lea ecx, [esp + 0x68]
push str.____which_is_not_defined._The_innermost_scope_is_searched_first_in_name_resolution._Consider_using_a_leading_._i.e.____.
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x50], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x48], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
lea ecx, [esp + 0x94]
push esi
push 0xffffffffffffffff
push 1
push esi
call fcn.0051fac0
movzx eax, byte [esp + 0x94]
test al, 1
je 0x6543e5
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
jmp 0x6543ee
shr eax, 1
lea edx, [esp + 0x95]
lea ecx, [esp + 0x48]
push eax
push edx
call fcn.00520110
mov ecx, dword [eax + 8]
mov dword [esp + 0x10], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 8], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
lea ecx, [esp + 8]
push str.___to_start_from_the_outermost_scope.
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x20], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x18], xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
add eax, 0xc
lea edx, [esp + 0x18]
push edx
push 7
push dword [ebx + 8]
push eax
call fcn.00643140
test byte [esp + 0x18], 1
jne 0x6544ac
test byte [esp + 8], 1
jne 0x6544bf
test byte [esp + 0x94], 1
jne 0x6544d5
test byte [esp + 0x48], 1
jne 0x6544eb
test byte [esp + 0x68], 1
jne 0x6544fe
test byte [esp + 0x88], 1
jne 0x654514
test byte [esp + 0xa8], 1
je 0x65456c
jmp 0x65452d
push dword [esp + 0x20]
call fcn.0051c570
add esp, 4
test byte [esp + 8], 1
je 0x654477
push dword [esp + 0x10]
call fcn.0051c570
add esp, 4
test byte [esp + 0x94], 1
je 0x654481
push dword [esp + 0x9c]
call fcn.0051c570
add esp, 4
test byte [esp + 0x48], 1
je 0x654488
push dword [esp + 0x50]
call fcn.0051c570
add esp, 4
test byte [esp + 0x68], 1
je 0x65448f
push dword [esp + 0x70]
call fcn.0051c570
add esp, 4
test byte [esp + 0x88], 1
je 0x654499
push dword [esp + 0x90]
call fcn.0051c570
add esp, 4
test byte [esp + 0xa8], 1
je 0x65456c
push dword [esp + 0xb0]
jmp 0x654564
push dword [esp + 0x20]
call fcn.0051c570
add esp, 4
test byte [esp + 8], 1
je 0x6542bb
push dword [esp + 0x10]
call fcn.0051c570
add esp, 4
test byte [esp + 0x48], 1
je 0x65456c
push dword [esp + 0x50]
call fcn.0051c570
add esp, 4
xor ebx, ebx
mov eax, dword [esp + 0x38]
test eax, eax
je 0x654583
mov dword [esp + 0x3c], eax
push eax
call fcn.0051c570
add esp, 4
test byte [esp + 0x78], 1
je 0x654599
push dword [esp + 0x80]
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 0x58]
test eax, eax
je 0x6545ae
mov dword [esp + 0x5c], eax
push eax
call fcn.0051c570
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
lea ecx, [esp + 0x38]
call fcn.005256b0
nop word cs:[eax + eax]
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x40]
mov ebx, eax
push 0x20
call fcn.0051c3d0
add esp, 4
mov edi, eax
movups xmm0, xmmword [0x8d24e3]
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0x6e6f6974
mov byte [eax + 0x14], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x50]
mov dword [esp + 4], edi
mov dword [esp + 8], 0x14
sub esp, 0xc
movsd xmm0, qword [esp + 0x10]
movsd qword [esp + 4], xmm0
mov dword [esp], ebx
call fcn.0065a820
cmp byte [eax], 2
jne 0x65464a
mov ebx, eax
test byte [eax + 1], 8
jne 0x65464a
push edi
call fcn.0051c570
add esp, 4
jmp 0x654687
push edi
call fcn.0051c570
add esp, 4
lea edi, [esp + 4]
mov ecx, edi
push 0x1df0
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, edi
push str.CHECK_failed:_field___nullptr:
call fcn.0062ff70
mov ecx, esp
push eax
call fcn.006300f0
mov ecx, edi
call fcn.00630770
xor ebx, ebx
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x40]
mov ecx, edx
push 0
push ebx
push esi
call fcn.0054ca00
mov ecx, eax
push ebp
call fcn.00541610
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret 8