Function at 0x5f257c
Capabilities:
Enumerate pe sections

Disassembly:
test dword [0x7eeab0], 0xffffff80
jne 0x5f25a4
test dword [0x7eeab0], 0xffffffff
jne 0x5f2e88
call fcn.006a7fbc
jmp fcn.005f257c
push edi
push esi
push ebp
push ebx
sub esp, 0x1c
mov esi, ecx
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
movzx ebx, word [esp + 0x3c]
mov word [esi + 0x1f], bx
mov dword [esi + 0xf], edi
movzx eax, byte [esi + 9]
and eax, 0xfffffff7
movzx edx, byte [edi + 9]
and edx, 8
or eax, edx
mov byte [esi + 9], al
movzx eax, word [edi + 0x13]
mov word [esi + 0x13], ax
movzx edx, byte [edi + 0x16]
mov byte [esi + 0x16], dl
movzx ecx, byte [edi + 0x15]
mov byte [esi + 0x15], cl
mov dword [esi + 0x29], ebp
movzx eax, byte [edi + 0xa]
and eax, 0x3f
cmp eax, 5
je 0x5f2e5b
mov dword [esi + 0x31], edi
mov ecx, dword [edi + 0x25]
mov dword [esi + 0x21], ecx
test ebp, ebp
jne 0x5f2610
mov eax, dword [edi + 0x35]
mov dword [esi + 0x29], eax
mov eax, dword [edi + 0x31]
mov dword [esi + 0x35], eax
mov dword [esi + 0x69], 1
test ebp, ebp
je 0x5f2657
mov ecx, esi
call fcn.004fa690
mov edi, eax
test edi, edi
je 0x5f2654
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x3c]
mov ebp, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x3c]
movzx edx, bp
movzx eax, ax
cmp edx, eax
jne 0x5f2654
mov eax, dword [edi + 0x69]
inc eax
mov dword [esi + 0x69], eax
mov ecx, dword [esi + 0x21]
jmp 0x5f2657
mov ecx, dword [esi + 0x21]
movzx edx, byte [esi + 0x91]
and edx, 0xfffffffe
movzx ebp, byte [esp + 0x48]
and ebp, 1
or edx, ebp
mov byte [esi + 0x91], dl
movzx eax, byte [esi + 0x90]
and eax, 0xffffffdf
movzx edi, byte [esp + 0x4c]
and edi, 1
shl edi, 5
or eax, edi
mov byte [esi + 0x90], al
mov eax, dword [esp + 0x40]
mov dword [esi + 0x2d], eax
and edx, 0xfffffffd
movzx eax, byte [eax + 0x11b]
and eax, 0x40
shr eax, 6
and eax, 1
add eax, eax
or edx, eax
mov byte [esi + 0x91], dl
call fcn.00540650
test eax, eax
je 0x5f26d9
mov ecx, dword [esi + 0x29]
mov eax, dword [ecx]
call dword [eax + 0x7c]
push edx
push eax
mov ecx, dword [esi + 0x21]
call fcn.005404bc
cmp eax, 2
jne 0x5f26d9
or byte [esi + 0x91], 4
mov ecx, ebx
call fcn.005ececc
mov dword [esi + 0x25], eax
mov edx, dword [esi + 0x21]
add edx, 0x9f
push edx
push esi
mov ecx, eax
call fcn.005a57c8
mov dword [esi + 0x25], eax
mov ecx, eax
call fcn.005ecd9c
test eax, eax
je 0x5f2713
mov ecx, dword [esi + 0x25]
call fcn.005ecd9c
push eax
mov ecx, esi
call fcn.004fa850
mov eax, dword [esi + 0x21]
add eax, 0x9f
push eax
mov ecx, dword [esi + 0x25]
call fcn.005a5700
mov ebx, eax
mov edx, dword [esi + 0x25]
mov eax, dword [edx + 8]
movzx ecx, word [eax + 0x10]
test ecx, ecx
je 0x5f2764
lea eax, [ecx*8]
lea ecx, [eax + ecx*4 + 0x701820]
lea ebp, [esp]
lea edx, [esp + 4]
push edx
push ebp
push 0x3a
call fcn.0053f618
movzx ecx, word [esp]
call fcn.0054cbb4
mov dword [esi + 0x4d], eax
mov edx, dword [esi + 0x25]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x30]
movzx ebp, byte [ecx + 0x5e]
test ebp, 2
je 0x5f2780
movzx ecx, word [eax + 0xa]
test ecx, ecx
jne 0x5f2e09
mov eax, dword [eax + 0x32]
mov dword [esi + 0x88], eax
mov eax, dword [edx + 8]
movzx edx, word [eax + 8]
test edx, edx
je 0x5f27fd
push 0
push 0x14
mov ecx, 0x700aac
call fcn.004e5c2c
test eax, eax
je 0x5f27b8
push 0
push 0x502cc4
push 0x1f
mov ecx, eax
call fcn.004f00b8
jmp 0x5f27ba
xor eax, eax
mov dword [esi + 0x45], eax
mov eax, dword [esi + 0x25]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 8]
call fcn.00541ae8
mov ebp, eax
test ebp, ebp
je 0x5f27f7
movzx eax, word [ebp]
mov word [esp + 0xc], ax
lea edx, [esp + 0xc]
push edx
mov ecx, dword [esi + 0x45]
call fcn.004ee44c
test eax, eax
je 0x5f2dda
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5f27d2
mov eax, dword [esi + 0x25]
mov eax, dword [eax + 8]
movzx eax, word [eax + 2]
test eax, eax
jne 0x5f2cf0
push 0
push 8
mov ecx, 0x700aa0
call fcn.004e5c2c
test eax, eax
je 0x5f2824
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
jmp 0x5f2826
xor eax, eax
mov dword [esi + 0x3d], eax
mov eax, dword [esi + 0x25]
mov eax, dword [eax + 8]
movzx edx, word [eax + 0x12]
test edx, edx
je 0x5f2bcf
movzx edx, byte [esi + 9]
and edx, 8
cmp edx, 8
je 0x5f2bcf
movzx ebp, byte [esi + 0x91]
and ebp, 2
shr ebp, 1
mov edi, dword [esi + 0x21]
movsx edi, word [edi + 0x3d]
movzx ecx, word [eax + 4]
call fcn.00541ae8
test eax, eax
je 0x5f2b96
mov edx, dword [esi + 0x25]
mov ecx, dword [edx + 8]
movzx edx, word [ecx + 0x12]
movzx ecx, word [eax]
cmp edx, ecx
je 0x5f294b
xor edx, edx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edi
mov dword [esp + 8], ebx
mov ebx, eax
mov ebp, edx
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f28b6
mov ecx, eax
call fcn.00545908
mov edi, eax
jmp 0x5f28b8
xor edi, edi
push edi
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
mov eax, 1
movzx ecx, word [ebx]
push 0
push eax
push esi
push ecx
push eax
mov ecx, dword [esp + 0x44]
push ecx
mov ecx, edi
call fcn.00545948
movzx ecx, byte [esi + 0x91]
and ecx, 2
cmp ecx, 2
je 0x5f2baf
test ebp, ebp
je 0x5f290f
or byte [edi + 0x84], 1
and byte [edi + 0x83], 0xf7
inc word [esi + 0x75]
mov ebp, 1
mov dword [esp + 0x10], ebp
jmp 0x5f291d
mov ecx, dword [edi + 0x21]
mov ecx, dword [ecx + 0x96]
cmp ecx, 2
je 0x5f28f2
mov ebx, dword [ebx + 2]
test ebx, ebx
je 0x5f2b88
mov ecx, dword [esi + 0x25]
mov edi, dword [ecx + 8]
movzx ecx, word [edi + 0x12]
movzx edi, word [ebx]
cmp ecx, edi
jne 0x5f2896
mov eax, ebx
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
test edi, edi
jle 0x5f29f3
mov edx, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edi
mov dword [esp + 8], ebx
mov edi, edx
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f2986
mov ecx, eax
call fcn.00545908
mov ebx, eax
jmp 0x5f2988
xor ebx, ebx
push ebx
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
movsx eax, di
mov ecx, dword [esp + 0x18]
movzx edx, word [ecx]
mov ecx, 1
push ecx
push ecx
push esi
push edx
push eax
mov eax, dword [esp + 0x44]
push eax
mov ecx, ebx
call fcn.00545948
or byte [ebx + 0x84], 1
and byte [ebx + 0x83], 0xf7
inc word [esi + 0x75]
mov eax, dword [ebx + 0x21]
mov eax, dword [eax + 0x96]
mov ecx, 1
cmp eax, 1
cmovne ebp, ecx
mov ecx, ebx
call fcn.005b16d4
inc edi
mov eax, dword [esp + 0x14]
cmp edi, eax
jle 0x5f2966
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 8]
mov edi, dword [eax + 2]
test edi, edi
je 0x5f2a74
mov dword [esp + 8], ebx
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f2a1e
mov ecx, eax
call fcn.00545908
mov ebx, eax
jmp 0x5f2a20
xor ebx, ebx
push ebx
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
mov edx, 1
movzx eax, word [edi]
push 0
push edx
push esi
push eax
push edx
mov eax, dword [esp + 0x44]
push eax
mov ecx, ebx
call fcn.00545948
or byte [ebx + 0x84], 1
and byte [ebx + 0x83], 0xf7
inc word [esi + 0x75]
mov eax, dword [ebx + 0x21]
mov edx, dword [eax + 0x96]
mov ecx, 1
cmp edx, 1
cmovne ebp, ecx
mov edi, dword [edi + 2]
test edi, edi
jne 0x5f29fe
mov ebx, dword [esp + 8]
mov eax, dword [esi + 0x25]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 6]
call fcn.00541ae8
mov edi, eax
test edi, edi
je 0x5f2af5
mov dword [esp + 0x10], ebp
mov dword [esp + 8], ebx
movzx ebp, word [edi]
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f2ab4
mov ecx, eax
call fcn.00545908
mov ebx, eax
jmp 0x5f2ab6
xor ebx, ebx
push ebx
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
xor eax, eax
push eax
push eax
push esi
push ebp
push 1
mov edx, dword [esp + 0x44]
push edx
mov ecx, ebx
call fcn.00545948
movzx eax, byte [esi + 0x91]
and eax, 2
cmp eax, 2
je 0x5f2b71
mov edi, dword [edi + 2]
test edi, edi
jne 0x5f2a91
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebp, ebp
je 0x5f2b0a
or byte [esi + 0x91], 2
mov eax, dword [esi + 0x2d]
or byte [eax + 0x11b], 0x20
mov eax, dword [esi + 0x3d]
cmp dword [eax], 0
je 0x5f2b63
mov eax, dword [esp + 0x44]
test eax, eax
je 0x5f2b50
mov ecx, dword [esp + 0x44]
call fcn.005f3810
mov edx, dword [esi + 0x2d]
push eax
push esi
mov ecx, dword [edx + 0x5d]
call fcn.005f4c2c
test ebx, ebx
je 0x5f2b46
mov eax, dword [esi + 0x21]
add eax, 0x9f
push eax
push ebx
mov ecx, dword [esi + 0x25]
call fcn.005a56e4
add esp, 0x1c
pop ebx
pop ebp
pop esi
pop edi
ret 0x20
mov eax, dword [esi + 0x2d]
mov ecx, dword [eax + 0x5d]
mov edx, dword [ecx + 0xc]
inc edx
push edx
push esi
call fcn.005f4c2c
jmp 0x5f2b30
push str.Empty_definition_
mov ecx, esi
call fcn.004fa850
jmp 0x5f2b12
or byte [ebx + 0x84], 1
and byte [ebx + 0x83], 0xf7
inc word [esi + 0x75]
jmp 0x5f2ae6
mov eax, ebx
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
push str.Could_not_find_the_Repeated_Field_
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.004fa850
mov eax, dword [esp + 0x18]
jmp 0x5f294b
or byte [edi + 0x84], 1
and byte [edi + 0x83], 0xf7
inc word [esi + 0x75]
mov ecx, 1
mov dword [esp + 0x10], ecx
jmp 0x5f291d
movzx ecx, word [eax + 4]
call fcn.00541ae8
mov ebp, eax
test ebp, ebp
je 0x5f2c46
mov dword [esp + 8], ebx
movzx ebx, word [ebp]
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f2c06
mov ecx, eax
call fcn.00545908
mov edi, eax
jmp 0x5f2c08
xor edi, edi
push edi
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
mov eax, 1
push 0
push eax
push esi
push ebx
push eax
mov edx, dword [esp + 0x44]
push edx
mov ecx, edi
call fcn.00545948
movzx eax, byte [esi + 0x91]
and eax, 2
cmp eax, 2
je 0x5f2cd9
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5f2be2
mov ebx, dword [esp + 8]
mov eax, dword [esi + 0x25]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 6]
call fcn.00541ae8
mov ebp, eax
test ebp, ebp
je 0x5f2b0a
mov dword [esp + 8], ebx
movzx ebx, word [ebp]
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f2c87
mov ecx, eax
call fcn.00545908
mov edi, eax
jmp 0x5f2c89
xor edi, edi
push edi
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
xor eax, eax
push eax
push eax
push esi
push ebx
push 1
mov edx, dword [esp + 0x44]
push edx
mov ecx, edi
call fcn.00545948
movzx eax, byte [esi + 0x91]
and eax, 2
cmp eax, 2
je 0x5f2cc5
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5f2c63
mov ebx, dword [esp + 8]
jmp 0x5f2b0a
or byte [edi + 0x84], 1
and byte [edi + 0x83], 0xf7
inc word [esi + 0x75]
jmp 0x5f2cb5
or byte [edi + 0x84], 1
and byte [edi + 0x83], 0xf7
inc word [esi + 0x75]
jmp 0x5f2c3b
push 0
push 8
mov ecx, 0x700aa0
call fcn.004e5c2c
test eax, eax
je 0x5f2d0b
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
jmp 0x5f2d0d
xor eax, eax
mov dword [esi + 0x39], eax
mov eax, dword [esi + 0x25]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 2]
call fcn.00541ae8
mov ebp, eax
test ebp, ebp
je 0x5f2dbd
mov dword [esp + 8], ebx
movzx edi, word [ebp]
push 1
push 0xb3
mov ecx, 0x700b00
call fcn.004e5c2c
mov ebx, eax
test ebx, ebx
je 0x5f2d71
push 5
push 0
mov ecx, ebx
call fcn.004fa818
mov dword [ebx], 0x7f2880
movzx eax, word [0x7e9220]
mov word [ebx + 0x61], ax
movzx edx, word [0x7e9220]
mov word [ebx + 0x63], dx
jmp 0x5f2d73
xor ebx, ebx
push ebx
mov ecx, dword [esi + 0x39]
call fcn.005a55c8
movzx edx, byte [esi + 0x91]
and edx, 1
movzx eax, byte [esi + 0x90]
and eax, 0x20
shr eax, 5
push eax
push edx
mov eax, dword [esp + 0x4c]
push eax
push dword [esi + 0x2d]
push edi
push dword [esi + 0x29]
push esi
mov edi, dword [esp + 0x4c]
push edi
mov ecx, ebx
call fcn.005f257c
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5f2d2d
mov ebx, dword [esp + 8]
mov eax, dword [esi + 0x39]
cmp dword [eax], 0
jne 0x5f2b30
push str.Empty_definition_
mov ecx, esi
call fcn.004fa850
jmp 0x5f2b30
mov ecx, 0x31
call fcn.004dc218
test eax, eax
je 0x5f2df9
movzx edx, word [ebp]
push esi
push 1
push edx
mov ecx, eax
call fcn.0061678c
jmp 0x5f2dfb
xor eax, eax
push eax
mov ecx, dword [esi + 0x45]
call fcn.004ef6f0
jmp 0x5f27f0
call fcn.0058424c
mov dword [esi + 0x6d], eax
mov eax, dword [esi + 0x25]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 0xa]
call fcn.00541ae8
mov ebp, eax
test ebp, ebp
je 0x5f2e50
movzx ecx, word [ebp]
mov edi, dword [esi + 0x21]
add edi, 0x9f
movzx eax, byte [esi + 9]
and eax, 8
shr eax, 3
push dword [esi + 0x6d]
push eax
push edi
mov edx, esi
call fcn.00584188
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5f2e26
mov edx, dword [esi + 0x25]
mov eax, dword [edx + 8]
jmp 0x5f2780
push ebx
push edi
push 5
mov ecx, esi
call fcn.004fa6e0
mov edx, dword [esi + 0xf]
cmp dword [esi + 0x29], 0
jne 0x5f2e75
mov eax, dword [edx + 0x29]
mov dword [esi + 0x29], eax
mov ecx, dword [edx + 0x21]
mov dword [esi + 0x21], ecx
mov edi, dword [edx + 0x31]
mov dword [esi + 0x31], edi
jmp 0x5f2610
push edi
push esi
push ebp
push ebx
sub esp, 0x1c
mov esi, ecx
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
movzx ebx, word [esp + 0x3c]
mov word [esi + 0x1f], bx
mov dword [esi + 0xf], edi
movzx edx, byte [edi + 9]
and edx, 8
movzx eax, byte [esi + 9]
and eax, 0xfffffff7
or eax, edx
mov byte [esi + 9], al
movzx eax, word [edi + 0x13]
mov word [esi + 0x13], ax
movzx edx, byte [edi + 0x16]
mov byte [esi + 0x16], dl
movzx ecx, byte [edi + 0x15]
mov byte [esi + 0x15], cl
mov dword [esi + 0x29], ebp
movzx eax, byte [edi + 0xa]
and eax, 0x3f
cmp eax, 5
je 0x5f3739
mov dword [esi + 0x31], edi
mov ecx, dword [edi + 0x25]
mov dword [esi + 0x21], ecx
test ebp, ebp
jne 0x5f2ef4
mov eax, dword [edi + 0x35]
mov dword [esi + 0x29], eax
mov eax, dword [edi + 0x31]
mov dword [esi + 0x35], eax
mov dword [esi + 0x69], 1
test ebp, ebp
je 0x5f2f3b
mov ecx, esi
call fcn.004fa690
mov edi, eax
test edi, edi
je 0x5f2f38
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x3c]
mov ebp, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x3c]
movzx edx, bp
movzx eax, ax
cmp edx, eax
jne 0x5f2f38
mov eax, dword [edi + 0x69]
inc eax
mov dword [esi + 0x69], eax
mov ecx, dword [esi + 0x21]
jmp 0x5f2f3b
mov ecx, dword [esi + 0x21]
movzx edx, byte [esi + 0x91]
and edx, 0xfffffffe
movzx ebp, byte [esp + 0x48]
and ebp, 1
or edx, ebp
mov byte [esi + 0x91], dl
movzx eax, byte [esi + 0x90]
and eax, 0xffffffdf
movzx edi, byte [esp + 0x4c]
and edi, 1
shl edi, 5
or eax, edi
mov byte [esi + 0x90], al
mov eax, dword [esp + 0x40]
mov dword [esi + 0x2d], eax
and edx, 0xfffffffd
movzx eax, byte [eax + 0x11b]
and eax, 0x40
shr eax, 6
and eax, 1
add eax, eax
or edx, eax
mov byte [esi + 0x91], dl
call fcn.00540650
test eax, eax
je 0x5f2fbd
mov ecx, dword [esi + 0x29]
mov eax, dword [ecx]
call dword [eax + 0x7c]
push edx
push eax
mov ecx, dword [esi + 0x21]
call fcn.005404bc
cmp eax, 2
jne 0x5f2fbd
or byte [esi + 0x91], 4
mov ecx, ebx
call fcn.005ececc
mov dword [esi + 0x25], eax
mov edx, dword [esi + 0x21]
add edx, 0x9f
push edx
push esi
mov ecx, eax
call fcn.005a57c8
mov dword [esi + 0x25], eax
mov ecx, eax
call fcn.005ecd9c
test eax, eax
je 0x5f2ff7
mov ecx, dword [esi + 0x25]
call fcn.005ecd9c
push eax
mov ecx, esi
call fcn.004fa850
mov eax, dword [esi + 0x21]
add eax, 0x9f
push eax
mov ecx, dword [esi + 0x25]
call fcn.005a5700
mov ebx, eax
mov edx, dword [esi + 0x25]
mov eax, dword [edx + 8]
movzx ecx, word [eax + 0x10]
test ecx, ecx
je 0x5f3048
lea eax, [ecx*8]
lea ecx, [eax + ecx*4 + 0x701820]
lea ebp, [esp]
lea edx, [esp + 4]
push edx
push ebp
push 0x3a
call fcn.0053f618
movzx ecx, word [esp]
call fcn.0054cbb4
mov dword [esi + 0x4d], eax
mov edx, dword [esi + 0x25]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x30]
movzx ebp, byte [ecx + 0x5e]
test ebp, 2
je 0x5f3064
movzx ecx, word [eax + 0xa]
test ecx, ecx
jne 0x5f36e7
mov eax, dword [eax + 0x32]
mov dword [esi + 0x88], eax
mov eax, dword [edx + 8]
movzx edx, word [eax + 8]
test edx, edx
je 0x5f30e1
push 0
push 0x14
mov ecx, 0x700aac
call fcn.004e5c2c
test eax, eax
je 0x5f309c
push 0
push 0x502cc4
push 0x1f
mov ecx, eax
call fcn.004f00b8
jmp 0x5f309e
xor eax, eax
mov dword [esi + 0x45], eax
mov eax, dword [esi + 0x25]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 8]
call fcn.00541ae8
mov ebp, eax
test ebp, ebp
je 0x5f30db
movzx eax, word [ebp]
mov word [esp + 0xc], ax
lea edx, [esp + 0xc]
push edx
mov ecx, dword [esi + 0x45]
call fcn.004ee44c
test eax, eax
je 0x5f36b8
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5f30b6
mov eax, dword [esi + 0x25]
mov eax, dword [eax + 8]
movzx eax, word [eax + 2]
test eax, eax
jne 0x5f35ce
push 0
push 8
mov ecx, 0x700aa0
call fcn.004e5c2c
test eax, eax
je 0x5f3108
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
jmp 0x5f310a
xor eax, eax
mov dword [esi + 0x3d], eax
mov eax, dword [esi + 0x25]
mov eax, dword [eax + 8]
movzx edx, word [eax + 0x12]
test edx, edx
je 0x5f34ad
movzx edx, byte [esi + 9]
and edx, 8
cmp edx, 8
je 0x5f34ad
movzx ebp, byte [esi + 0x91]
and ebp, 2
shr ebp, 1
mov edi, dword [esi + 0x21]
movsx edi, word [edi + 0x3d]
movzx ecx, word [eax + 4]
call fcn.00541ae8
test eax, eax
je 0x5f3474
mov ecx, dword [esi + 0x25]
mov ecx, dword [ecx + 8]
movzx edx, word [eax]
movzx ecx, word [ecx + 0x12]
cmp ecx, edx
je 0x5f322f
xor edx, edx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edi
mov dword [esp + 8], ebx
mov ebx, eax
mov ebp, edx
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f319a
mov ecx, eax
call fcn.00545908
mov edi, eax
jmp 0x5f319c
xor edi, edi
push edi
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
mov eax, 1
movzx ecx, word [ebx]
push 0
push eax
push esi
push ecx
push eax
mov ecx, dword [esp + 0x44]
push ecx
mov ecx, edi
call fcn.00545948
movzx ecx, byte [esi + 0x91]
and ecx, 2
cmp ecx, 2
je 0x5f348d
test ebp, ebp
je 0x5f31f3
or byte [edi + 0x84], 1
and byte [edi + 0x83], 0xf7
inc word [esi + 0x75]
mov ebp, 1
mov dword [esp + 0x10], ebp
jmp 0x5f3201
mov ecx, dword [edi + 0x21]
mov ecx, dword [ecx + 0x96]
cmp ecx, 2
je 0x5f31d6
mov ebx, dword [ebx + 2]
test ebx, ebx
je 0x5f3466
mov ecx, dword [esi + 0x25]
mov edi, dword [ecx + 8]
movzx eax, word [ebx]
movzx ecx, word [edi + 0x12]
cmp ecx, eax
jne 0x5f317a
mov eax, ebx
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
test edi, edi
jle 0x5f32d2
mov edx, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edi
mov dword [esp + 8], ebx
mov edi, edx
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f326a
mov ecx, eax
call fcn.00545908
mov ebx, eax
jmp 0x5f326c
xor ebx, ebx
push ebx
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
movsx eax, di
mov ecx, dword [esp + 0x18]
movzx edx, word [ecx]
mov ecx, 1
push ecx
push ecx
push esi
push edx
push eax
mov eax, dword [esp + 0x44]
push eax
mov ecx, ebx
call fcn.00545948
or byte [ebx + 0x84], 1
and byte [ebx + 0x83], 0xf7
inc word [esi + 0x75]
mov eax, dword [ebx + 0x21]
mov eax, dword [eax + 0x96]
cmp eax, 1
je 0x5f32ba
mov ebp, 1
mov ecx, ebx
call fcn.005b16d4
inc edi
mov eax, dword [esp + 0x14]
cmp edi, eax
jle 0x5f324a
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 8]
mov edi, dword [eax + 2]
test edi, edi
je 0x5f3352
mov dword [esp + 8], ebx
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f32fd
mov ecx, eax
call fcn.00545908
mov ebx, eax
jmp 0x5f32ff
xor ebx, ebx
push ebx
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
mov edx, 1
movzx eax, word [edi]
push 0
push edx
push esi
push eax
push edx
mov eax, dword [esp + 0x44]
push eax
mov ecx, ebx
call fcn.00545948
or byte [ebx + 0x84], 1
and byte [ebx + 0x83], 0xf7
inc word [esi + 0x75]
mov eax, dword [ebx + 0x21]
mov edx, dword [eax + 0x96]
cmp edx, 1
je 0x5f3347
mov ebp, 1
mov edi, dword [edi + 2]
test edi, edi
jne 0x5f32dd
mov ebx, dword [esp + 8]
mov eax, dword [esi + 0x25]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 6]
call fcn.00541ae8
mov edi, eax
test edi, edi
je 0x5f33d3
mov dword [esp + 0x10], ebp
mov dword [esp + 8], ebx
movzx ebp, word [edi]
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f3392
mov ecx, eax
call fcn.00545908
mov ebx, eax
jmp 0x5f3394
xor ebx, ebx
push ebx
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
xor eax, eax
push eax
push eax
push esi
push ebp
push 1
mov edx, dword [esp + 0x44]
push edx
mov ecx, ebx
call fcn.00545948
movzx eax, byte [esi + 0x91]
and eax, 2
cmp eax, 2
je 0x5f344f
mov edi, dword [edi + 2]
test edi, edi
jne 0x5f336f
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 8]
test ebp, ebp
je 0x5f33e8
or byte [esi + 0x91], 2
mov eax, dword [esi + 0x2d]
or byte [eax + 0x11b], 0x20
mov eax, dword [esi + 0x3d]
cmp dword [eax], 0
je 0x5f3441
mov eax, dword [esp + 0x44]
test eax, eax
je 0x5f342e
mov ecx, dword [esp + 0x44]
call fcn.005f3810
mov edx, dword [esi + 0x2d]
push eax
push esi
mov ecx, dword [edx + 0x5d]
call fcn.005f4c2c
test ebx, ebx
je 0x5f3424
mov eax, dword [esi + 0x21]
add eax, 0x9f
push eax
push ebx
mov ecx, dword [esi + 0x25]
call fcn.005a56e4
add esp, 0x1c
pop ebx
pop ebp
pop esi
pop edi
ret 0x20
mov eax, dword [esi + 0x2d]
mov ecx, dword [eax + 0x5d]
mov edx, dword [ecx + 0xc]
inc edx
push edx
push esi
call fcn.005f4c2c
jmp 0x5f340e
push str.Empty_definition_
mov ecx, esi
call fcn.004fa850
jmp 0x5f33f0
or byte [ebx + 0x84], 1
and byte [ebx + 0x83], 0xf7
inc word [esi + 0x75]
jmp 0x5f33c4
mov eax, ebx
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
push str.Could_not_find_the_Repeated_Field_
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.004fa850
mov eax, dword [esp + 0x18]
jmp 0x5f322f
or byte [edi + 0x84], 1
and byte [edi + 0x83], 0xf7
inc word [esi + 0x75]
mov ecx, 1
mov dword [esp + 0x10], ecx
jmp 0x5f3201
movzx ecx, word [eax + 4]
call fcn.00541ae8
mov ebp, eax
test ebp, ebp
je 0x5f3524
mov dword [esp + 8], ebx
movzx ebx, word [ebp]
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f34e4
mov ecx, eax
call fcn.00545908
mov edi, eax
jmp 0x5f34e6
xor edi, edi
push edi
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
mov eax, 1
push 0
push eax
push esi
push ebx
push eax
mov edx, dword [esp + 0x44]
push edx
mov ecx, edi
call fcn.00545948
movzx eax, byte [esi + 0x91]
and eax, 2
cmp eax, 2
je 0x5f35b7
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5f34c0
mov ebx, dword [esp + 8]
mov eax, dword [esi + 0x25]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 6]
call fcn.00541ae8
mov ebp, eax
test ebp, ebp
je 0x5f33e8
mov dword [esp + 8], ebx
movzx ebx, word [ebp]
push 1
push 0x86
mov ecx, 0x700b0c
call fcn.004e5c2c
test eax, eax
je 0x5f3565
mov ecx, eax
call fcn.00545908
mov edi, eax
jmp 0x5f3567
xor edi, edi
push edi
mov ecx, dword [esi + 0x3d]
call fcn.005a55c8
xor eax, eax
push eax
push eax
push esi
push ebx
push 1
mov edx, dword [esp + 0x44]
push edx
mov ecx, edi
call fcn.00545948
movzx eax, byte [esi + 0x91]
and eax, 2
cmp eax, 2
je 0x5f35a3
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5f3541
mov ebx, dword [esp + 8]
jmp 0x5f33e8
or byte [edi + 0x84], 1
and byte [edi + 0x83], 0xf7
inc word [esi + 0x75]
jmp 0x5f3593
or byte [edi + 0x84], 1
and byte [edi + 0x83], 0xf7
inc word [esi + 0x75]
jmp 0x5f3519
push 0
push 8
mov ecx, 0x700aa0
call fcn.004e5c2c
test eax, eax
je 0x5f35e9
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
jmp 0x5f35eb
xor eax, eax
mov dword [esi + 0x39], eax
mov eax, dword [esi + 0x25]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 2]
call fcn.00541ae8
mov ebp, eax
test ebp, ebp
je 0x5f369b
mov dword [esp + 8], ebx
movzx edi, word [ebp]
push 1
push 0xb3
mov ecx, 0x700b00
call fcn.004e5c2c
mov ebx, eax
test ebx, ebx
je 0x5f364f
push 5
push 0
mov ecx, ebx
call fcn.004fa818
mov dword [ebx], 0x7f2880
movzx eax, word [0x7e9220]
mov word [ebx + 0x61], ax
movzx edx, word [0x7e9220]
mov word [ebx + 0x63], dx
jmp 0x5f3651
xor ebx, ebx
push ebx
mov ecx, dword [esi + 0x39]
call fcn.005a55c8
movzx edx, byte [esi + 0x91]
and edx, 1
movzx eax, byte [esi + 0x90]
and eax, 0x20
shr eax, 5
push eax
push edx
mov eax, dword [esp + 0x4c]
push eax
push dword [esi + 0x2d]
push edi
push dword [esi + 0x29]
push esi
mov edi, dword [esp + 0x4c]
push edi
mov ecx, ebx
call fcn.005f257c
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5f360b
mov ebx, dword [esp + 8]
mov eax, dword [esi + 0x39]
cmp dword [eax], 0
jne 0x5f340e
push str.Empty_definition_
mov ecx, esi
call fcn.004fa850
jmp 0x5f340e
mov ecx, 0x31
call fcn.004dc218
test eax, eax
je 0x5f36d7
movzx edx, word [ebp]
push esi
push 1
push edx
mov ecx, eax
call fcn.0061678c
jmp 0x5f36d9
xor eax, eax
push eax
mov ecx, dword [esi + 0x45]
call fcn.004ef6f0
jmp 0x5f30d4
call fcn.0058424c
mov dword [esi + 0x6d], eax
mov eax, dword [esi + 0x25]
mov edx, dword [eax + 8]
movzx ecx, word [edx + 0xa]
call fcn.00541ae8
mov ebp, eax
test ebp, ebp
je 0x5f372e
movzx ecx, word [ebp]
movzx eax, byte [esi + 9]
and eax, 8
shr eax, 3
mov edi, dword [esi + 0x21]
add edi, 0x9f
push dword [esi + 0x6d]
push eax
push edi
mov edx, esi
call fcn.00584188
mov ebp, dword [ebp + 2]
test ebp, ebp
jne 0x5f3704
mov edx, dword [esi + 0x25]
mov eax, dword [edx + 8]
jmp 0x5f3064
push ebx
push edi
push 5
mov ecx, esi
call fcn.004fa6e0
mov edx, dword [esi + 0xf]
cmp dword [esi + 0x29], 0
jne 0x5f3753
mov eax, dword [edx + 0x29]
mov dword [esi + 0x29], eax
mov ecx, dword [edx + 0x21]
mov dword [esi + 0x21], ecx
mov edi, dword [edx + 0x31]
mov dword [esi + 0x31], edi
jmp 0x5f2ef4