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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x636d5f
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
push ebx
push esi
push edi
mov eax, dword [0x6f7654]
xor eax, esp
push eax
lea eax, [esp + 0xf8]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
xor ebx, ebx
mov dword [esp + 0x50], ebx
cmp edi, esi
jne 0x553cf1
push 0x37
push str..._srcgoogleprotobuf_reflection_ops.cc
push 3
lea ecx, [esp + 0xa8]
mov byte [esp + 0x57], bl
call fcn.00529570
mov dword [esp + 0x100], ebx
mov ebx, 1
push str.CHECK_failed:__from_____to_:
mov ecx, eax
mov dword [esp + 0x54], ebx
call fcn.00529820
push eax
lea ecx, [esp + 0x4f]
call fcn.00529bb0
mov dword [esp + 0x100], 0xffffffff
test bl, 1
je 0x553d10
lea ecx, [esp + 0x9c]
and ebx, 0xfffffffe
call fcn.005295a0
mov eax, dword [edi]
mov edx, dword [eax + 0x5c]
lea ecx, [esp + 0x60]
push ecx
mov ecx, edi
call edx
mov edi, dword [eax]
mov eax, dword [esi]
mov edx, dword [eax + 0x5c]
lea ecx, [esp + 0x58]
push ecx
mov ecx, esi
call edx
mov eax, dword [eax]
cmp eax, edi
je 0x553dd6
push 0x3a
push str..._srcgoogleprotobuf_reflection_ops.cc
push 3
lea ecx, [esp + 0xa8]
mov byte [esp + 0x57], 0
call fcn.00529570
mov dword [esp + 0x4c], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x5c]
lea ecx, [esp + 0x58]
push ecx
or ebx, 2
mov ecx, esi
mov dword [esp + 0x104], 1
mov dword [esp + 0x54], ebx
call edx
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov edi, dword [edi + 4]
mov ecx, dword [esp + 0x4c]
push 0x68be40
push eax
push str._to
push edi
push str._merge
push str.Tried_to_merge_messages_of_different_types
push str.CHECK_failed:__to__GetDescriptor______descriptor_:
call fcn.00529820
mov ecx, eax
call fcn.00529820
mov ecx, eax
call fcn.00529820
mov ecx, eax
call fcn.00529800
mov ecx, eax
call fcn.00529820
mov ecx, eax
call fcn.00529800
mov ecx, eax
call fcn.00529820
push eax
lea ecx, [esp + 0x4f]
call fcn.00529bb0
mov dword [esp + 0x100], 0xffffffff
test bl, 2
je 0x553df2
lea ecx, [esp + 0x9c]
call fcn.005295a0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x58]
call edx
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x58]
mov ecx, esi
call edx
lea ecx, [esp + 0x68]
mov ebx, eax
call fcn.0058c1a0
mov eax, dword [edi]
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0x3c]
lea ecx, [esp + 0x68]
push ecx
push edx
mov ecx, edi
mov dword [esp + 0x108], 2
call eax
mov eax, dword [esp + 0x78]
sub eax, dword [esp + 0x74]
mov dword [esp + 0x4c], 0
sar eax, 2
test eax, eax
jbe 0x554331
cmp dword [esp + 0x4c], eax
jb 0x553e55
call fcn.005eb286
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x4c]
mov esi, dword [ecx + edx*4]
cmp dword [esi + 0x24], 3
jne 0x5540f6
mov ecx, dword [ebp + 8]
mov eax, dword [edi]
mov edx, dword [eax + 0x14]
push esi
push ecx
mov ecx, edi
call edx
xor ecx, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x50], ecx
test eax, eax
jle case.default.0x55410a
mov eax, dword [esi + 0x20]
mov eax, dword [eax*4 + 0x68af68]
dec eax
cmp eax, 9
ja case.default.0x553e9e
jmp dword [eax*4 + 0x554398]
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0xa4]
add eax, 0x100
push ecx
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x553e9e
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0xa8]
add eax, 0x104
push ecx
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x553e9e
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0xac]
add eax, 0x108
push ecx
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x553e9e
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0xb0]
add eax, 0x10c
push ecx
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x553e9e
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0xb4]
add eax, 0x110
push ecx
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x54]
push ecx
fstp dword [esp]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x553e9e
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0xb8]
add eax, 0x114
push ecx
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x54]
sub esp, 8
fstp qword [esp]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x553e9e
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0xbc]
add eax, 0x118
push ecx
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x54]
movzx eax, al
push eax
mov eax, dword [edx]
push esi
push ecx
mov ecx, ebx
call eax
jmp case.default.0x553e9e
mov eax, dword [ebp + 8]
mov edx, dword [edi]
mov edx, dword [edx + 0xc0]
push ecx
push esi
push eax
lea ecx, [esp + 0x8c]
push ecx
mov ecx, edi
call edx
mov edx, dword [ebx]
mov edx, dword [edx + 0x11c]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov ecx, ebx
mov byte [esp + 0x10c], 3
call edx
cmp dword [esp + 0x98], 0x10
mov byte [esp + 0x100], 2
jb case.default.0x553e9e
mov eax, dword [esp + 0x84]
push eax
call fcn.005ea386
add esp, 4
jmp case.default.0x553e9e
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0xc4]
add eax, 0x120
push ecx
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x553e9e
mov edx, dword [ebx]
mov eax, dword [ebp + 0xc]
mov edx, dword [edx + 0x128]
push 0
push esi
push eax
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 8]
mov dword [esp + 0x54], eax
mov eax, dword [eax]
add eax, 0x48
push ecx
mov dword [esp + 0x5c], eax
mov eax, dword [edi]
mov eax, dword [eax + 0xcc]
push esi
push edx
mov ecx, edi
call eax
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
push eax
mov eax, dword [edx]
call eax
mov ecx, dword [esp + 0x50]
inc ecx
cmp ecx, dword [esp + 0x60]
mov dword [esp + 0x50], ecx
jl 0x553e8a
jmp case.default.0x55410a
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx*4 + 0x68af68]
dec eax
cmp eax, 9
ja case.default.0x55410a
jmp dword [eax*4 + 0x5543c0]
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0x40]
add eax, 0x70
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x55410a
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0x44]
add eax, 0x74
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x55410a
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0x48]
add eax, 0x78
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x55410a
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0x4c]
add eax, 0x7c
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x55410a
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0x50]
sub eax, 0xffffff80
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x60]
push ecx
fstp dword [esp]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x55410a
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0x54]
add eax, 0x84
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x60]
sub esp, 8
fstp qword [esp]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x55410a
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0x58]
add eax, 0x88
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x60]
movzx eax, al
push eax
mov eax, dword [edx]
push esi
push ecx
mov ecx, ebx
call eax
jmp case.default.0x55410a
mov eax, dword [ebp + 8]
mov edx, dword [edi]
mov edx, dword [edx + 0x5c]
push esi
push eax
lea ecx, [esp + 0x88]
push ecx
mov ecx, edi
call edx
mov edx, dword [ebx]
mov edx, dword [edx + 0x8c]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov ecx, ebx
mov byte [esp + 0x10c], 4
call edx
cmp dword [esp + 0x98], 0x10
mov byte [esp + 0x100], 2
jb case.default.0x55410a
mov eax, dword [esp + 0x84]
push eax
call fcn.005ea386
add esp, 4
jmp case.default.0x55410a
mov eax, dword [ebx]
mov edx, dword [edi]
mov edx, dword [edx + 0x60]
add eax, 0x90
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
mov eax, dword [edx]
mov ecx, ebx
call eax
jmp case.default.0x55410a
mov edx, dword [ebx]
mov eax, dword [ebp + 0xc]
mov edx, dword [edx + 0x98]
push 0
push esi
push eax
mov ecx, ebx
call edx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x60], eax
mov eax, dword [eax]
add eax, 0x48
push 0
mov dword [esp + 0x5c], eax
mov eax, dword [edi]
mov edx, dword [eax + 0x68]
push esi
push ecx
mov ecx, edi
call edx
mov ecx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x5c]
mov edx, dword [eax]
call edx
mov eax, dword [esp + 0x78]
sub eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x4c]
inc ecx
sar eax, 2
mov dword [esp + 0x4c], ecx
cmp ecx, eax
jb 0x553e4a
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [edi]
mov edx, dword [eax + 4]
push ecx
mov ecx, edi
call edx
push eax
mov eax, dword [ebx]
mov edx, dword [eax + 8]
push esi
mov ecx, ebx
call edx
mov ecx, eax
call fcn.00550f90
mov eax, dword [esp + 0x74]
xor esi, esi
cmp eax, esi
je 0x554363
push eax
call fcn.005ea386
add esp, 4
mov eax, dword [esp + 0x68]
push eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
call fcn.005ea386
add esp, 4
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret