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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf8
mov eax, ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], 0
mov edx, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 4]
sub eax, edx
sar eax, 2
imul edi, eax, 0xcccccccd
dec edi
mov dword [esp + 0x38], edi
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
test esi, esi
je 0x77d404
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [ecx + 8], 0
cmp ebx, 0xfffffff0
jae 0x77e0e9
cmp ebx, 0xb
jae 0x77d432
mov eax, ebx
add al, bl
mov byte [esp + 0x3c], al
lea edi, [esp + 0x3d]
test ebx, ebx
jne 0x77d454
jmp 0x77d45f
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [ecx + 8], 0
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x20], 0
jmp 0x77d486
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x44], eax
add edi, 2
mov dword [esp + 0x3c], edi
mov edi, eax
mov dword [esp + 0x40], ebx
push ebx
push esi
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov byte [edi + ebx], 0
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
movzx eax, byte [esp + 0x3c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x68], 0
lea edi, [edi + edi*4]
movzx eax, byte [edx + edi*4 + 8]
test al, 1
je 0x77d4b4
mov ecx, dword [edx + edi*4 + 0x10]
mov eax, dword [edx + edi*4 + 0xc]
jmp 0x77d4bc
shr eax, 1
lea ecx, [edx + edi*4]
add ecx, 9
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
xor ecx, ecx
test eax, eax
mov eax, 0x92e120
mov edx, 0x92e121
cmove edx, eax
mov dword [esp + 0xa0], edx
setne cl
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x20]
mov eax, ecx
shr al, 1
test cl, 1
lea ecx, [esp + 0x3d]
mov edx, dword [esp + 0xc]
cmove edx, ecx
movzx eax, al
mov ecx, dword [esp + 4]
cmove ecx, eax
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], ecx
lea edx, [esp + 0xc8]
lea ecx, [esp + 0xa0]
lea eax, [esp + 0x78]
lea edi, [esp + 0x60]
push edx
push ecx
push eax
push edi
call fcn.0062cf90
add esp, 0x10
test ebx, ebx
je 0x77d5ae
xor eax, eax
jmp 0x77d545
inc eax
cmp ebx, eax
je 0x77d5ae
movzx ecx, byte [esi + eax]
cmp ecx, 0x2e
je 0x77d540
cmp ecx, 0x5f
je 0x77d540
mov edx, ecx
add dl, 0xc6
cmp dl, 0xf5
ja 0x77d540
mov edx, ecx
add dl, 0xa5
cmp dl, 0xe5
ja 0x77d540
add cl, 0x85
cmp cl, 0xe6
jae 0x77d540
lea esi, [esp + 0x78]
mov ecx, esi
push 0x2c0
push str.external_protobuf_src_google_protobuf_descriptor_database.cc
push 2
call fcn.00630740
mov ecx, esi
push str.Invalid_symbol_name:
call fcn.0062ff70
mov ecx, eax
push edi
call fcn.0062ff90
lea ecx, [esp + 0xa0]
push eax
call fcn.006300f0
mov ecx, esi
jmp 0x77df64
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x28]
mov dword [esp + 0x20], ecx
lea esi, [eax + 0x2c]
mov edi, dword [eax + 0x2c]
mov dword [esp + 0xc], esi
test edi, edi
je 0x77d601
mov eax, dword [esp + 0x10]
lea ebx, [eax + 0x34]
mov esi, dword [esp + 0xc]
nop word cs:[eax + eax]
lea eax, [edi + 0x10]
mov ecx, ebx
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.00782620
lea ecx, [edi + 4]
test al, al
cmovne ecx, edi
cmovne esi, edi
mov edi, dword [ecx]
test edi, edi
jne 0x77d5e0
mov eax, dword [esp + 0x20]
cmp esi, dword [eax]
je 0x77d62b
mov eax, dword [esi]
test eax, eax
je 0x77d620
nop
mov ebx, eax
mov eax, dword [eax + 4]
test eax, eax
jne 0x77d610
jmp 0x77d62d
mov ebx, dword [esi + 8]
cmp dword [ebx], esi
mov esi, ebx
je 0x77d620
jmp 0x77d62d
mov ebx, esi
movzx eax, byte [esp + 0x60]
lea ecx, [esp + 0x61]
test al, 1
je 0x77d644
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
jmp 0x77d646
shr eax, 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
cmp ebx, dword [esp + 0xc]
je 0x77da74
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + edx*4 + 8]
test al, 1
je 0x77d677
mov esi, dword [ecx + edx*4 + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
jmp 0x77d67f
shr eax, 1
lea esi, [ecx + edx*4]
add esi, 9
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, 0x92e120
mov edx, 0x92e121
cmove edx, eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
movzx eax, byte [ebx + 0x14]
lea ecx, [ebx + 0x15]
test al, 1
mov dword [esp + 0x28], ecx
je 0x77d6c0
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x18]
jmp 0x77d6c2
shr eax, 1
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
lea ecx, [esp + 0x48]
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x80]
push eax
push ecx
call fcn.0062cf90
add esp, 0x10
movzx ecx, byte [esp + 0x48]
mov eax, dword [esp + 0x50]
test cl, 1
mov dword [esp + 8], ecx
je 0x77d70f
mov edi, dword [esp + 0x4c]
mov esi, eax
jmp 0x77d717
mov edi, ecx
shr edi, 1
lea esi, [esp + 0x49]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
cmp edi, ecx
mov dword [esp + 0x1c], ecx
jne 0x77d758
mov cl, 1
mov dword [esp + 4], ecx
test edi, edi
je 0x77d768
cmp esi, edx
je 0x77d768
push edi
push edx
push esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x18]
je 0x77d768
cmp edi, ecx
jbe 0x77d836
mov dword [esp + 4], 0
test byte [esp + 8], 1
je 0x77d77c
push eax
mov esi, edx
call fcn.0051c570
mov edx, esi
add esp, 4
cmp byte [esp + 4], 0
je 0x77d7e6
lea edi, [esp + 0x48]
mov ecx, edi
push 0x29d
push str.external_protobuf_src_google_protobuf_descriptor_database.cc
push 2
call fcn.00630740
mov ecx, edi
push str.Symbol_name__
call fcn.0062ff70
lea edx, [esp + 0x2c]
mov ecx, eax
push edx
call fcn.00630200
mov ecx, eax
push str.__conflicts_with_the_existing_symbol__
call fcn.0062ff70
mov edi, eax
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + edx*4 + 8]
test al, 1
je 0x77d85c
mov esi, dword [ecx + edx*4 + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
jmp 0x77d864
mov eax, dword [ebx + 4]
test eax, eax
je 0x77d800
nop dword [eax]
mov esi, eax
mov eax, dword [eax]
test eax, eax
jne 0x77d7f0
jmp 0x77d809
mov esi, dword [ebx + 8]
cmp dword [esi], ebx
mov ebx, esi
jne 0x77d800
cmp esi, dword [esp + 0xc]
je 0x77da74
mov dword [esp + 0x14], edx
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + edx*4 + 8]
test al, 1
je 0x77d8a5
mov edi, dword [ecx + edx*4 + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
jmp 0x77d8ad
mov dword [esp + 0x18], eax
push edi
push esi
push edx
mov esi, edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
add esp, 0xc
test eax, eax
je 0x77d99d
mov dword [esp + 4], 0
jmp 0x77d9a8
shr eax, 1
lea esi, [ecx + edx*4]
add esi, 9
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, 0x92e120
mov edx, 0x92e121
cmove edx, eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
movzx eax, byte [ebx + 0x14]
test al, 1
je 0x77def6
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x18]
jmp 0x77defc
shr eax, 1
lea edi, [ecx + edx*4]
add edi, 9
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, 0x92e120
mov edx, 0x92e121
cmove edx, eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
movzx eax, byte [esi + 0x14]
lea ecx, [esi + 0x15]
test al, 1
mov dword [esp + 0x28], ecx
je 0x77d8ee
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
jmp 0x77d8f0
shr eax, 1
lea edx, [esp + 0x48]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x80]
push eax
push edx
call fcn.0062cf90
add esp, 0x10
movzx eax, byte [esp + 0x48]
mov edi, dword [esp + 0x50]
test al, 1
je 0x77d93a
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0xc], edi
jmp 0x77d946
mov ebx, eax
shr ebx, 1
lea ecx, [esp + 0x49]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x1c]
cmp ebx, ecx
jne 0x77d98f
mov dl, 1
mov dword [esp + 4], edx
test ecx, ecx
je 0x77d9f9
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
cmp edx, eax
je 0x77d9f5
push ecx
push edx
push eax
mov dword [esp + 0x24], edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 8]
je 0x77d9f9
cmp ebx, ecx
jae 0x77d9be
mov dword [esp + 4], 0
jmp 0x77d9f9
cmp byte [esi + edi], 0x2e
sete al
mov dword [esp + 4], eax
mov edx, esi
mov eax, dword [esp + 0x18]
test byte [esp + 8], 1
jne 0x77d76f
jmp 0x77d77c
mov dword [esp + 8], eax
mov ebx, edi
push ecx
push dword [esp + 0x18]
mov edi, dword [esp + 0x14]
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
add esp, 0xc
test eax, eax
je 0x77d9e4
mov dword [esp + 4], 0
jmp 0x77d9f3
mov eax, dword [esp + 0x1c]
cmp byte [edi + eax], 0x2e
sete al
mov dword [esp + 4], eax
mov edi, ebx
mov eax, dword [esp + 8]
test al, 1
je 0x77da06
push edi
call fcn.0051c570
add esp, 4
cmp byte [esp + 4], 0
je 0x77da70
lea edi, [esp + 0x48]
mov ecx, edi
push 0x2ab
push str.external_protobuf_src_google_protobuf_descriptor_database.cc
push 2
call fcn.00630740
mov ecx, edi
push str.Symbol_name__
call fcn.0062ff70
lea edx, [esp + 0x2c]
mov ecx, eax
push edx
call fcn.00630200
mov ecx, eax
push str.__conflicts_with_the_existing_symbol__
call fcn.0062ff70
mov edi, eax
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + edx*4 + 8]
test al, 1
je 0x77deb4
mov ebx, dword [ecx + edx*4 + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
jmp 0x77debc
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x34]
mov esi, dword [ecx + 0x38]
mov edx, dword [ecx + 0x3c]
mov dword [esp + 0x78], eax
sub edx, esi
je 0x77dad7
sar edx, 4
mov ebx, esi
nop
mov dword [esp + 4], edx
mov edi, ebx
mov esi, edx
shr esi, 1
mov ebx, esi
shl ebx, 4
lea eax, [edi + ebx]
lea ecx, [esp + 0x78]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.00782620
mov ecx, esi
not ecx
add ecx, dword [esp + 4]
test al, al
lea ebx, [edi + ebx + 0x10]
cmovne ebx, edi
cmovne ecx, esi
mov edx, ecx
test ecx, ecx
jne 0x77da90
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov esi, dword [ecx + 0x3c]
jmp 0x77dadb
mov eax, esi
mov ebx, esi
xor ecx, ecx
cmp eax, ebx
setne cl
mov edx, ecx
mov eax, ecx
shl eax, 4
mov edi, ebx
sub edi, eax
movzx eax, byte [esp + 0x60]
test al, 1
lea ecx, [esp + 0x61]
je 0x77db04
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
jmp 0x77db06
shr eax, 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
cmp edi, esi
je 0x77e05e
mov dword [esp + 0x1c], esi
neg edx
mov dword [esp + 4], edx
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + edx*4 + 8]
test al, 1
je 0x77db3e
mov esi, dword [ecx + edx*4 + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
jmp 0x77db46
shr eax, 1
lea esi, [ecx + edx*4]
add esi, 9
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, 0x92e120
mov edx, 0x92e121
cmove edx, eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
mov edx, dword [esp + 4]
shl edx, 4
movzx eax, byte [ebx + edx + 4]
lea esi, [edi + 5]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, dword [ebx + edx + 0xc]
mov dword [esp + 4], edx
cmovne ecx, dword [ebx + edx + 8]
mov dword [esp + 0xf0], esi
cmove eax, esi
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
lea ecx, [esp + 0x48]
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x80]
push eax
push ecx
call fcn.0062cf90
add esp, 0x10
movzx eax, byte [esp + 0x48]
mov edx, dword [esp + 0x50]
test al, 1
mov dword [esp + 0x28], eax
je 0x77dbea
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x18], edx
jmp 0x77dbf6
mov esi, eax
shr esi, 1
lea eax, [esp + 0x49]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
cmp esi, eax
mov dword [esp + 0x24], eax
jne 0x77dc3b
mov al, 1
mov dword [esp + 8], eax
test esi, esi
je 0x77dc4b
mov eax, dword [esp + 0x18]
cmp eax, ecx
je 0x77dc4b
push esi
push ecx
push eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x24]
je 0x77dc4b
cmp esi, eax
jbe 0x77dd09
mov dword [esp + 8], 0
test byte [esp + 0x28], 1
je 0x77dc5f
push edx
mov esi, ecx
call fcn.0051c570
mov ecx, esi
add esp, 4
cmp byte [esp + 8], 0
mov eax, dword [esp + 0x1c]
je 0x77dcd4
mov eax, dword [esp + 4]
add eax, ebx
add eax, 4
mov dword [esp + 0x20], eax
lea esi, [esp + 0x48]
mov ecx, esi
push 0x29d
push str.external_protobuf_src_google_protobuf_descriptor_database.cc
push 2
call fcn.00630740
mov ecx, esi
push str.Symbol_name__
call fcn.0062ff70
lea edx, [esp + 0x2c]
mov ecx, eax
push edx
call fcn.00630200
mov ecx, eax
push str.__conflicts_with_the_existing_symbol__
call fcn.0062ff70
mov dword [esp + 0xc], eax
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + edx*4 + 8]
test al, 1
je 0x77dd38
mov esi, dword [ecx + edx*4 + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
jmp 0x77dd40
lea ebx, [edi + 0x10]
cmp ebx, eax
je 0x77e05e
mov dword [esp + 0x14], ecx
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + edx*4 + 8]
test al, 1
je 0x77ddca
mov esi, dword [ecx + edx*4 + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
jmp 0x77ddd2
mov dword [esp + 0x34], edx
push esi
push dword [esp + 0x1c]
push ecx
mov dword [esp + 0x20], ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
add esp, 0xc
test eax, eax
je 0x77df9d
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x14]
jmp 0x77dfac
shr eax, 1
lea esi, [ecx + edx*4]
add esi, 9
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, 0x92e120
mov edx, 0x92e121
cmove edx, eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
mov eax, dword [esp + 0x20]
movzx eax, byte [eax]
test al, 1
je 0x77dd85
mov eax, dword [esp + 4]
add eax, ebx
add eax, 0xc
mov ecx, dword [eax]
mov eax, dword [eax - 4]
jmp 0x77dd8e
shr eax, 1
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
lea esi, [esp + 0x6c]
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x80]
push eax
push esi
call fcn.0062cf90
add esp, 0x10
mov ecx, dword [esp + 0xc]
jmp 0x77df31
shr eax, 1
lea esi, [ecx + edx*4]
add esi, 9
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, 0x92e120
mov edx, 0x92e121
cmove edx, eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
movzx eax, byte [edi + 0x14]
test al, 1
je 0x77de0c
mov eax, dword [edi + 0x18]
mov edi, dword [edi + 0x1c]
jmp 0x77de11
add edi, 0x15
shr eax, 1
mov dword [esp + 4], ebx
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.0062cf90
add esp, 0x10
movzx edx, byte [esp + 0x48]
mov esi, dword [esp + 0x50]
test dl, 1
je 0x77de5e
mov ebx, dword [esp + 0x4c]
mov edi, esi
jmp 0x77de66
mov ebx, edx
shr ebx, 1
lea edi, [esp + 0x49]
mov eax, dword [esp + 0x24]
cmp ebx, eax
jne 0x77dea5
mov cl, 1
test eax, eax
je 0x77dfe9
mov ecx, dword [esp + 0x14]
cmp edi, ecx
je 0x77dfd8
push eax
push edi
push ecx
mov dword [esp + 0x14], edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
mov edx, dword [esp + 0x14]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x24]
mov cl, 1
je 0x77dfe9
cmp ebx, eax
jae 0x77dfc0
xor ecx, ecx
jmp 0x77dfe9
shr eax, 1
lea ebx, [ecx + edx*4]
add ebx, 9
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, 0x92e120
mov edx, 0x92e121
cmove edx, eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
movzx eax, byte [esi + 0x14]
test al, 1
je 0x77def6
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
jmp 0x77defc
shr eax, 1
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
lea esi, [esp + 0x6c]
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x80]
push eax
push esi
call fcn.0062cf90
add esp, 0x10
mov ecx, edi
push esi
call fcn.0062ff90
mov ecx, eax
push 0x92e1ca
call fcn.0062ff70
lea ecx, [esp + 0x78]
push eax
call fcn.006300f0
test byte [esp + 0x6c], 1
je 0x77df60
push dword [esp + 0x74]
call fcn.0051c570
add esp, 4
lea ecx, [esp + 0x48]
call fcn.00630770
xor ebx, ebx
test byte [esp + 0x60], 1
je 0x77df7e
push dword [esp + 0x68]
call fcn.0051c570
add esp, 4
test byte [esp + 0x3c], 1
je 0x77df91
push dword [esp + 0x44]
call fcn.0051c570
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov ecx, dword [esp + 0x14]
cmp byte [ecx + esi], 0x2e
sete al
mov dword [esp + 8], eax
mov edx, dword [esp + 0x34]
test byte [esp + 0x28], 1
jne 0x77dc52
jmp 0x77dc5f
mov ebx, edx
push eax
push dword [esp + 0x18]
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
add esp, 0xc
test eax, eax
je 0x77dfdc
xor ecx, ecx
jmp 0x77dfe7
mov cl, 1
jmp 0x77dfe9
mov eax, dword [esp + 0x24]
cmp byte [edi + eax], 0x2e
sete cl
mov edx, ebx
test dl, 1
je 0x77dffb
push esi
mov esi, ecx
call fcn.0051c570
mov ecx, esi
add esp, 4
test cl, cl
mov ebx, dword [esp + 4]
je 0x77e05e
lea edi, [esp + 0x48]
mov ecx, edi
push 0x2ab
push str.external_protobuf_src_google_protobuf_descriptor_database.cc
push 2
call fcn.00630740
mov ecx, edi
push str.Symbol_name__
call fcn.0062ff70
lea edx, [esp + 0x2c]
mov ecx, eax
push edx
call fcn.00630200
mov ecx, eax
push str.__conflicts_with_the_existing_symbol__
call fcn.0062ff70
mov edi, eax
mov eax, dword [ebx]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
lea edx, [eax + eax*4]
movzx eax, byte [ecx + edx*4 + 8]
test al, 1
je 0x77e08c
mov esi, dword [ecx + edx*4 + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
jmp 0x77e094
mov eax, dword [esp + 0xc]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
lea edx, [esp + 0x38]
mov ecx, dword [esp + 0x20]
push edx
push edx
push eax
call fcn.00782ab0
mov bl, 1
test byte [esp + 0x60], 1
jne 0x77df72
jmp 0x77df7e
shr eax, 1
lea esi, [ecx + edx*4]
add esi, 9
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], eax
xor ecx, ecx
test eax, eax
setne cl
mov eax, 0x92e120
mov edx, 0x92e121
cmove edx, eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
movzx eax, byte [ebx + 4]
test al, 1
je 0x77e0d8
mov eax, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov dword [esp + 0xc8], ebx
jmp 0x77df03
add ebx, 5
shr eax, 1
mov dword [esp + 0xc8], ebx
jmp 0x77df03
call fcn.0051f6b0
nop