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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov ebx, ecx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x40], 0
jle 0x652b86
xor esi, esi
xor edi, edi
nop
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
add eax, esi
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0x2c]
mov ecx, ebx
push dword [edx + edi*4 + 4]
push eax
call fcn.00652b40
mov eax, dword [ebp + 8]
inc edi
add esi, 0x58
cmp edi, dword [eax + 0x40]
jl 0x652b60
mov eax, dword [eax + 0x44]
test eax, eax
jle 0x652bec
xor esi, esi
mov edi, 1
jmp 0x652ba8
inc esi
add edi, 0xb
cmp esi, eax
jge 0x652bec
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x24]
cmp dword [ecx + edi*4], 0
jle 0x652ba0
mov edx, dword [ecx + edi*4 + 0x14]
cmp dword [edx + 4], 0
je 0x652ba0
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + esi*4 + 4]
mov edx, dword [ecx + edi*4 + 4]
add edx, 0xc
mov eax, dword [eax + 0x1c]
mov ecx, ebx
push str.The_first_enum_value_must_be_zero_in_proto3.
push 1
push dword [eax + 4]
push edx
call fcn.00643220
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x44]
jmp 0x652ba0
mov ecx, ebx
mov edx, dword [ebp + 8]
cmp dword [edx + 4], 0
jle 0x652c25
xor esi, esi
xor edi, edi
nop dword [eax + eax]
mov eax, dword [edx + 0x18]
add eax, esi
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x1c]
mov ecx, ebx
push dword [edx + edi*4 + 4]
push eax
call fcn.006526f0
mov edx, dword [ebp + 8]
mov ecx, ebx
inc edi
add esi, 0x30
cmp edi, dword [edx + 4]
jl 0x652c00
cmp dword [edx + 0x4c], 0
jle 0x652c55
xor esi, esi
xor edi, edi
nop
mov eax, dword [edx + 0x2c]
add eax, esi
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x5c]
mov ecx, ebx
push dword [edx + edi*4 + 4]
push eax
call fcn.006526f0
mov edx, dword [ebp + 8]
mov ecx, ebx
inc edi
add esi, 0x30
cmp edi, dword [edx + 0x4c]
jl 0x652c30
cmp dword [edx + 0x48], 0
mov esi, dword [ebp + 0xc]
mov edi, edx
mov ebx, ecx
jle 0x652c7d
mov eax, dword [edi + 8]
add eax, 0xc
mov edx, dword [esi + 0x4c]
mov ecx, ebx
push str.Extension_ranges_are_not_allowed_in_proto3.
push 1
push dword [edx + 4]
push eax
call fcn.00643220
mov eax, dword [edi + 0x14]
cmp byte [eax + 0x2c], 0
je 0x652c9c
mov eax, dword [edi + 8]
add eax, 0xc
mov ecx, ebx
push str.MessageSet_is_not_supported_in_proto3.
push 0
push esi
push eax
call fcn.00643220
lea eax, [esp + 0x30]
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], eax
cmp dword [edi + 4], 0
jle 0x652fe9
xor esi, esi
mov dword [esp + 0x20], ebx
jmp 0x652cda
inc esi
cmp esi, dword [edi + 4]
jge 0x652fe3
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], 0
mov eax, dword [edi + 0x18]
lea ecx, [esi + esi*2]
shl ecx, 4
mov dword [esp + 0x24], ecx
mov edi, dword [eax + ecx + 8]
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], 0
movzx ebx, byte [edi]
test bl, 1
mov dword [esp + 0x28], esi
je 0x652d40
mov ebx, dword [edi + 4]
mov edi, dword [edi + 8]
test ebx, ebx
jne 0x652d47
jmp 0x652d80
inc edi
shr ebx, 1
test ebx, ebx
je 0x652d80
xor esi, esi
jmp 0x652d55
inc esi
cmp ebx, esi
je 0x652d80
movzx eax, byte [edi + esi]
cmp al, 0x5f
je 0x652d50
mov ecx, eax
add cl, 0xbf
movzx edx, al
add al, 0x20
cmp cl, 0x1a
movzx eax, al
cmovae eax, edx
movsx eax, al
mov ecx, esp
push eax
call fcn.00520460
jmp 0x652d50
lea esi, [esp + 0x2c]
mov ecx, esi
mov ebx, esp
push ebx
call fcn.00664180
lea ecx, [esp + 0x30]
cmp eax, ecx
je 0x652e40
mov edi, dword [ebp + 8]
mov eax, dword [edi + 8]
add eax, 0xc
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x1c]
mov esi, dword [esp + 0x28]
mov eax, dword [eax + esi*4 + 4]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x24]
push dword [eax + ecx + 8]
push str.The_JSON_camel_case_name_of_field__
lea edi, [esp + 0x78]
push edi
call fcn.00523f10
add esp, 0xc
mov ecx, edi
push str.__conflicts_with_field__
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 + 8], 0
mov dword [eax + 4], 0
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x2c]
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x14]
push eax
push 0x8d316b
push ebx
call fcn.00664280
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 8]
movzx edx, byte [eax]
test dl, 1
je 0x652e80
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x652e83
mov ecx, dword [ebp + 8]
mov edi, dword [esp + 0x24]
add edi, dword [ecx + 0x18]
mov dword [esp + 0x10], ebx
mov ecx, esi
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x14]
push eax
push 0x8d316b
push ebx
call fcn.00664280
mov dword [eax + 0x1c], edi
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x28]
test byte [esp], 1
je 0x652cd0
jmp 0x652fd2
inc eax
shr edx, 1
mov ebx, dword [esp + 0x20]
lea ecx, [esp + 0x50]
push edx
push eax
call fcn.00520110
mov ecx, dword [eax + 8]
mov dword [esp + 0x68], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x60], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
lea ecx, [esp + 0x60]
push str._._This_is_not
call fcn.00520360
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.allowed_in_proto3.
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
mov ecx, ebx
lea eax, [esp + 0x10]
push eax
push 0
push dword [esp + 0x50]
push dword [esp + 0x58]
call fcn.00643140
test byte [esp + 0x10], 1
mov edi, dword [ebp + 8]
jne 0x652f70
test byte [esp + 0x38], 1
jne 0x652f83
test byte [esp + 0x60], 1
jne 0x652f96
test byte [esp + 0x50], 1
jne 0x652fa9
test byte [esp + 0x70], 1
jne 0x652fbc
test byte [esp], 1
je 0x652cd0
jmp 0x652fd2
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
test byte [esp + 0x38], 1
je 0x652f44
push dword [esp + 0x40]
call fcn.0051c570
add esp, 4
test byte [esp + 0x60], 1
je 0x652f4b
push dword [esp + 0x68]
call fcn.0051c570
add esp, 4
test byte [esp + 0x50], 1
je 0x652f52
push dword [esp + 0x58]
call fcn.0051c570
add esp, 4
test byte [esp + 0x70], 1
je 0x652f59
push dword [esp + 0x78]
call fcn.0051c570
add esp, 4
test byte [esp], 1
je 0x652cd0
push dword [esp + 8]
call fcn.0051c570
add esp, 4
jmp 0x652cd0
mov eax, dword [esp + 0x30]
jmp 0x652feb
xor eax, eax
lea ecx, [esp + 0x2c]
push eax
call fcn.0065cf90
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8