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

Disassembly:
push 0x80
mov eax, 0x59b108
call fcn.0054669f
mov edi, dword [ebp + 8]
xor eax, eax
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x74], eax
cmp edi, ebx
jne 0x5284ce
push 0x37
push str.d:package_cacheprotobuf_blz2.6.0.19_srcgoogleprotobuf_reflection_ops.cc
push 3
lea ecx, [ebp - 0x38]
call fcn.005127c8
and dword [ebp - 4], 0
xor ecx, ecx
inc ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x74], ecx
mov ecx, eax
push str.CHECK_failed:__from_____to_:
call fcn.0051294b
push eax
lea ecx, [ebp - 0x69]
call fcn.005128ad
mov eax, dword [ebp - 0x60]
or dword [ebp - 4], 0xffffffff
test al, 1
je 0x5284e4
and eax, 0xfffffffe
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x60], eax
call fcn.0051284f
mov eax, dword [edi]
lea ecx, [ebp - 0x8c]
push ecx
mov ecx, edi
call dword [eax + 0x48]
lea ecx, [ebp - 0x78]
push ecx
mov ecx, ebx
mov esi, dword [eax]
mov eax, dword [ebx]
mov dword [ebp - 0x70], esi
call dword [eax + 0x48]
cmp dword [eax], esi
je 0x528599
push 0x3a
push str.d:package_cacheprotobuf_blz2.6.0.19_srcgoogleprotobuf_reflection_ops.cc
push 3
lea ecx, [ebp - 0x38]
call fcn.005127c8
mov esi, eax
mov eax, dword [ebp - 0x60]
mov ecx, ebx
mov edx, dword [ebx]
or eax, 2
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x68]
push eax
mov dword [ebp - 4], 1
call dword [edx + 0x48]
push 0x5a248c
mov ecx, esi
mov eax, dword [eax]
push dword [eax + 4]
mov eax, dword [ebp - 0x70]
push str._to
push dword [eax + 4]
push str._merge
push str.Tried_to_merge_messages_of_different_types
push str.CHECK_failed:__to__GetDescriptor______descriptor_:
call fcn.0051294b
mov ecx, eax
call fcn.0051294b
mov ecx, eax
call fcn.0051294b
mov ecx, eax
call fcn.005128bc
mov ecx, eax
call fcn.0051294b
mov ecx, eax
call fcn.005128bc
mov ecx, eax
call fcn.0051294b
push eax
lea ecx, [ebp - 0x69]
call fcn.005128ad
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x60]
test cl, 2
je 0x5285ad
lea ecx, [ebp - 0x38]
call fcn.0051284f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x44]
mov ebx, eax
mov eax, dword [ebp - 0x5c]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x44]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov edx, dword [ebx]
lea eax, [ebp - 0x84]
push eax
push edi
mov ecx, ebx
mov dword [ebp - 4], 2
call dword [edx + 0x3c]
xor ecx, ecx
mov dword [ebp - 0x74], ecx
cmp dword [ebp - 0x80], ecx
jbe 0x528979
mov eax, dword [ebp - 0x84]
mov edi, dword [eax + ecx*4]
mov dword [ebp - 0x70], edi
cmp dword [edi + 0x1c], 3
jne 0x5287f2
mov eax, dword [ebx]
mov ecx, ebx
push edi
push dword [ebp - 0x58]
call dword [eax + 0x14]
xor edx, edx
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x60], edx
test eax, eax
jle case.default.0x528806
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx*4 + 0x605508]
dec eax
cmp eax, 9
ja case.default.0x52863f
jmp dword [eax*4 + 0x5289ad]
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edx
push edi
push dword [ebp - 0x58]
call dword [eax + 0x9c]
mov ecx, dword [ebp - 0x64]
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0xf0]
jmp 0x5287d7
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edx
push edi
push dword [ebp - 0x58]
call dword [eax + 0xa0]
mov ecx, dword [ebp - 0x64]
push edx
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0xf4]
jmp 0x5287d7
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edx
push edi
push dword [ebp - 0x58]
call dword [eax + 0xa4]
mov ecx, dword [ebp - 0x64]
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0xf8]
jmp 0x5287d7
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edx
push edi
push dword [ebp - 0x58]
call dword [eax + 0xa8]
mov ecx, dword [ebp - 0x64]
push edx
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0xfc]
jmp 0x5287d7
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edx
push edi
push dword [ebp - 0x58]
call dword [eax + 0xac]
push ecx
mov ecx, dword [ebp - 0x64]
fstp dword [esp]
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x100]
jmp 0x5287d7
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edx
push edi
push dword [ebp - 0x58]
call dword [eax + 0xb0]
push ecx
push ecx
mov ecx, dword [ebp - 0x64]
fstp qword [esp]
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x104]
jmp 0x5287d7
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edx
push edi
push dword [ebp - 0x58]
call dword [eax + 0xb4]
mov ecx, dword [ebp - 0x64]
movzx eax, al
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x108]
jmp 0x5287d7
mov eax, dword [ebx]
lea ecx, [ebp - 0x2c]
push edx
push edi
push dword [ebp - 0x58]
push ecx
mov ecx, ebx
call dword [eax + 0xb8]
mov edx, dword [esi]
mov ecx, esi
push eax
push edi
push dword [ebp - 0x5c]
mov byte [ebp - 4], 3
call dword [edx + 0x10c]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.00435b6b
mov byte [ebp - 4], 2
jmp 0x5287da
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edx
push edi
push dword [ebp - 0x58]
call dword [eax + 0xbc]
mov ecx, dword [ebp - 0x64]
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x110]
jmp 0x5287d7
mov eax, dword [esi]
mov ecx, esi
push 0
push edi
push dword [ebp - 0x5c]
call dword [eax + 0x114]
push dword [ebp - 0x60]
mov edx, dword [ebx]
mov esi, eax
push dword [ebp - 0x70]
mov ecx, ebx
push dword [ebp - 0x58]
mov edi, dword [esi]
call dword [edx + 0xc0]
push eax
mov ecx, esi
call dword [edi + 0x34]
mov edi, dword [ebp - 0x70]
mov esi, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
inc edx
mov dword [ebp - 0x60], edx
cmp edx, dword [ebp - 0x88]
jl 0x52862b
jmp case.default.0x528806
mov eax, dword [edi + 0x18]
mov eax, dword [eax*4 + 0x605508]
dec eax
cmp eax, 9
ja case.default.0x528806
jmp dword [eax*4 + 0x5289d5]
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edi
push dword [ebp - 0x58]
call dword [eax + 0x40]
mov ecx, dword [ebp - 0x64]
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x6c]
jmp case.default.0x528806
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edi
push dword [ebp - 0x58]
call dword [eax + 0x44]
mov ecx, dword [ebp - 0x64]
push edx
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x70]
jmp case.default.0x528806
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edi
push dword [ebp - 0x58]
call dword [eax + 0x48]
mov ecx, dword [ebp - 0x64]
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x74]
jmp case.default.0x528806
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edi
push dword [ebp - 0x58]
call dword [eax + 0x4c]
mov ecx, dword [ebp - 0x64]
push edx
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x78]
jmp case.default.0x528806
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edi
push dword [ebp - 0x58]
call dword [eax + 0x50]
push ecx
mov ecx, dword [ebp - 0x64]
fstp dword [esp]
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x7c]
jmp case.default.0x528806
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edi
push dword [ebp - 0x58]
call dword [eax + 0x54]
push ecx
push ecx
mov ecx, dword [ebp - 0x64]
fstp qword [esp]
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x80]
jmp case.default.0x528806
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edi
push dword [ebp - 0x58]
call dword [eax + 0x58]
mov ecx, dword [ebp - 0x64]
movzx eax, al
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x84]
jmp case.default.0x528806
mov eax, dword [ebx]
lea ecx, [ebp - 0x54]
push edi
push dword [ebp - 0x58]
push ecx
mov ecx, ebx
call dword [eax + 0x5c]
mov edx, dword [esi]
mov ecx, esi
push eax
push edi
push dword [ebp - 0x5c]
mov byte [ebp - 4], 5
call dword [edx + 0x88]
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 6
call fcn.00435b6b
mov byte [ebp - 4], 2
jmp case.default.0x528806
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push edi
push dword [ebp - 0x58]
call dword [eax + 0x60]
mov ecx, dword [ebp - 0x64]
push eax
push edi
push dword [ebp - 0x5c]
call dword [esi + 0x8c]
jmp case.default.0x528806
mov eax, dword [esi]
mov ecx, esi
push 0
push edi
push dword [ebp - 0x5c]
call dword [eax + 0x90]
mov edx, dword [ebx]
mov esi, eax
push 0
push dword [ebp - 0x70]
mov ecx, ebx
push dword [ebp - 0x58]
mov edi, dword [esi]
call dword [edx + 0x64]
push eax
mov ecx, esi
call dword [edi + 0x34]
mov eax, dword [ebp - 0x74]
mov esi, dword [ebp - 0x64]
inc eax
mov ecx, eax
mov dword [ebp - 0x74], eax
cmp eax, dword [ebp - 0x80]
jb 0x5285f7
mov edi, dword [ebp - 0x58]
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 4]
push eax
mov eax, dword [esi]
mov ecx, esi
push dword [ebp - 0x5c]
call dword [eax + 8]
mov ecx, eax
call fcn.00521878
lea ecx, [ebp - 0x84]
mov dword [ebp - 4], 7
call fcn.00512dee
call fcn.00546649
ret