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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x160
mov edi, ecx
mov dword [esp + 4], ecx
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, ebx
call fcn.00645410
mov dword [edi + 0x28], eax
mov word [eax + 1], 0
test byte [esi + 8], 0x10
mov dword [esp + 8], eax
jne 0x646568
mov dword [esp + 0x54], 0
mov esi, dword [0x8d331c]
jmp 0x646617
cmp dword [ebx], 0
jne 0x6465a1
lea esi, [esp + 0x70]
mov ecx, esi
push 0x187
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.CHECK_failed:_has_allocated__:
call fcn.0062ff70
lea ecx, [esp + 0x28]
push eax
call fcn.006300f0
mov ecx, esi
call fcn.00630770
mov esi, dword [ebx + 8]
mov ecx, ebx
mov ebx, dword [ebx + 0x70]
lea eax, [ebx + 1]
mov dword [ecx + 0x70], eax
cmp eax, dword [ecx + 0x3c]
jle 0x6465e8
lea edi, [esp + 0x70]
mov ecx, edi
push 0x18d
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, edi
push str.CHECK_failed:__used_____total_.template_Get_TypeToUse____:
call fcn.0062ff70
lea ecx, [esp + 0x28]
push eax
call fcn.006300f0
mov ecx, edi
call fcn.00630770
lea eax, [ebx + ebx*8]
lea eax, [eax + eax*2]
add eax, ebx
add esi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x88]
test eax, eax
jne 0x646604
mov eax, dword [0x8d331c]
mov ecx, esi
push eax
call fcn.00779560
mov dword [esp + 0x54], esi
mov eax, dword [esp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [eax + 0x54], esi
cmp dword [ebx], 0
jne 0x646653
lea esi, [esp + 0x70]
mov ecx, esi
push 0x187
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.CHECK_failed:_has_allocated__:
call fcn.0062ff70
lea ecx, [esp + 0x28]
push eax
call fcn.006300f0
mov ecx, esi
call fcn.00630770
mov edi, dword [ebx + 0xc]
mov ecx, ebx
mov ebx, dword [ebx + 0x74]
lea eax, [ebx + 1]
mov dword [ecx + 0x74], eax
cmp eax, dword [ecx + 0x40]
jle 0x64669a
lea esi, [esp + 0x70]
mov ecx, esi
push 0x18d
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.CHECK_failed:__used_____total_.template_Get_TypeToUse____:
call fcn.0062ff70
lea ecx, [esp + 0x28]
push eax
call fcn.006300f0
mov ecx, esi
call fcn.00630770
shl ebx, 7
add edi, ebx
mov eax, dword [esp + 4]
mov dword [eax + 0x2c], edi
mov eax, dword [eax + 0x28]
mov dword [eax + 0x50], edi
mov edi, dword [ebp + 8]
test byte [edi + 8], 1
jne 0x6466f6
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], 0
lea eax, [esp + 0x70]
mov ecx, dword [esp + 4]
push str.Missing_field:_FileDescriptorProto.name.
push 0xa
push edi
push eax
call fcn.00643220
test byte [esp + 0x70], 1
je 0x6466f6
push dword [esp + 0x78]
call fcn.0051c570
add esp, 4
mov ecx, dword [edi + 0x80]
and ecx, 0xfffffffc
movzx eax, byte [ecx]
test al, 1
je 0x64670b
mov eax, dword [ecx + 4]
jmp 0x64670d
shr eax, 1
mov ebx, dword [esp + 4]
test eax, eax
je 0x646748
cmp eax, 6
jne 0x646737
push 6
push str.proto2
push 0xffffffffffffffff
push 0
call fcn.00521750
test eax, eax
je 0x646748
mov ecx, dword [edi + 0x80]
and ecx, 0xfffffffc
movzx eax, byte [ecx]
test al, 1
je 0x646751
mov eax, dword [ecx + 4]
cmp eax, 6
je 0x646758
jmp 0x64676c
mov eax, dword [ebx + 0x28]
mov byte [eax + 3], 2
jmp 0x6467c0
shr eax, 1
cmp eax, 6
jne 0x64676c
push 6
push str.proto3
push 0xffffffffffffffff
push 0
call fcn.00521750
test eax, eax
je 0x6467b9
mov eax, dword [ebx + 0x28]
mov byte [eax + 3], 0
mov esi, dword [edi + 0x78]
and esi, 0xfffffffc
mov eax, dword [edi + 0x80]
and eax, 0xfffffffc
lea edi, [esp + 0x70]
push eax
push str.Unrecognized_syntax:
push edi
call fcn.00523f10
add esp, 0xc
mov ecx, ebx
push edi
mov edi, dword [ebp + 8]
push 0xa
push edi
push esi
call fcn.00643140
test byte [esp + 0x70], 1
je 0x6467c0
push dword [esp + 0x78]
call fcn.0051c570
add esp, 4
jmp 0x6467c0
mov eax, dword [ebx + 0x28]
mov byte [eax + 3], 3
mov ebx, dword [esp + 8]
mov edi, dword [edi + 0x78]
and edi, 0xfffffffc
mov ecx, dword [ebp + 0xc]
mov edx, 1
call fcn.00656ac0
mov esi, eax
lea ecx, [esp + 0x70]
push edi
call fcn.0051f860
test byte [esi], 1
je 0x646805
mov eax, dword [esi + 8]
mov byte [eax], 0
mov dword [esi + 4], 0
test byte [esi], 1
je 0x646805
push dword [esi + 8]
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 0x78]
mov dword [esi + 8], eax
movq xmm0, qword [esp + 0x70]
movq qword [esi], xmm0
mov dword [ebx + 8], esi
mov eax, dword [ebp + 8]
test byte [eax + 8], 2
jne 0x64686d
mov ecx, dword [ebp + 0xc]
mov edx, 1
call fcn.00656ac0
mov esi, eax
test byte [eax], 1
mov edi, dword [esp + 4]
je 0x646857
mov eax, dword [esi + 8]
mov byte [eax], 0
mov dword [esi + 4], 0
test byte [esi], 1
je 0x646857
push dword [esi + 8]
call fcn.0051c570
add esp, 4
mov dword [esi + 4], 0
mov dword [esi], 0
mov dword [esi + 8], 0
jmp 0x6468c3
mov edi, dword [eax + 0x7c]
and edi, 0xfffffffc
mov ecx, dword [ebp + 0xc]
mov edx, 1
call fcn.00656ac0
mov esi, eax
lea ecx, [esp + 0x70]
push edi
call fcn.0051f860
test byte [esi], 1
je 0x6468ae
mov eax, dword [esi + 8]
mov byte [eax], 0
mov dword [esi + 4], 0
test byte [esi], 1
je 0x6468ae
push dword [esi + 8]
call fcn.0051c570
add esp, 4
mov eax, dword [esp + 0x78]
mov dword [esi + 8], eax
movq xmm0, qword [esp + 0x70]
movq qword [esi], xmm0
mov edi, dword [esp + 4]
mov dword [ebx + 0xc], esi
mov eax, dword [edi]
mov dword [ebx + 0x10], eax
mov ecx, dword [ebx + 8]
push 0
push 0
call fcn.005212b0
cmp eax, 0xffffffff
je 0x64696a
mov eax, ebx
mov ebx, edi
mov edi, dword [eax + 8]
lea esi, [esp + 0x28]
push edi
push 0x8d08b4
push esi
call fcn.00523f10
add esp, 0xc
mov ecx, esi
push str.__contains_null_character.
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x78], ecx
movq xmm0, qword [eax]
movq qword [esp + 0x70], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov ecx, ebx
lea eax, [esp + 0x70]
push eax
push 0
push dword [ebp + 8]
push edi
call fcn.00643140
test byte [esp + 0x70], 1
je 0x646950
push dword [esp + 0x78]
call fcn.0051c570
add esp, 4
test byte [esp + 0x28], 1
je 0x646963
push dword [esp + 0x30]
call fcn.0051c570
add esp, 4
xor esi, esi
jmp 0x647de3
mov esi, dword [edi + 4]
mov dword [esp + 0x28], ebx
lea ecx, [esi + 0x88]
mov eax, dword [ebx + 8]
movzx edx, byte [eax]
test dl, 1
je 0x64698a
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x64698d
inc eax
shr edx, 1
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ebx
lea eax, [esp + 0x70]
push eax
push eax
call fcn.0065e9d0
test dl, 1
jne 0x6469c1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x78]
and eax, 0xfffffffc
mov ecx, edi
push str.A_file_with_this_name_is_already_in_the_pool.
push 0xa
push edx
jmp 0x646b82
mov eax, dword [esi + 0xc4]
cmp eax, dword [esi + 0xc8]
je 0x6469da
mov dword [eax], ebx
add dword [esi + 0xc4], 4
jmp 0x6469ec
add esi, 0xc0
lea eax, [esp + 0x28]
mov ecx, esi
push eax
call fcn.0065efa0
mov esi, dword [ebp + 8]
mov eax, dword [ebx + 0xc]
movzx ecx, byte [eax]
test cl, 1
je 0x646a06
mov edx, dword [eax + 4]
test edx, edx
jne 0x646a12
jmp 0x646b9e
mov edx, ecx
shr edx, 1
test edx, edx
je 0x646b9e
test cl, 1
je 0x646a1c
mov ecx, dword [eax + 8]
jmp 0x646a1f
lea ecx, [eax + 1]
xor esi, esi
mov edi, ecx
cmp edx, 8
jb 0x646b56
lea esi, [edx - 8]
mov ebx, esi
shr ebx, 3
inc ebx
cmp esi, 8
jae 0x646a49
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
jmp 0x646adf
mov edi, ebx
and edi, 0xfffffffe
pxor xmm0, xmm0
xor esi, esi
movdqa xmm2, xmmword [str.....]
movdqa xmm3, xmmword [0x8d01f0]
pxor xmm1, xmm1
nop dword [eax + eax]
movd xmm5, dword [ecx + esi]
movd xmm4, dword [ecx + esi + 4]
pcmpeqb xmm5, xmm2
punpcklbw xmm5, xmm5
punpcklwd xmm5, xmm5
pand xmm5, xmm3
paddd xmm5, xmm0
pcmpeqb xmm4, xmm2
punpcklbw xmm4, xmm4
punpcklwd xmm4, xmm4
pand xmm4, xmm3
paddd xmm4, xmm1
movd xmm0, dword [ecx + esi + 8]
movd xmm1, dword [ecx + esi + 0xc]
pcmpeqb xmm0, xmm2
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pand xmm0, xmm3
paddd xmm0, xmm5
pcmpeqb xmm1, xmm2
punpcklbw xmm1, xmm1
punpcklwd xmm1, xmm1
pand xmm1, xmm3
paddd xmm1, xmm4
add esi, 0x10
add edi, 0xfffffffe
jne 0x646a70
mov edi, edx
and edi, 0xfffffff8
test bl, 1
je 0x646b2c
movd xmm3, dword [ecx + esi]
movd xmm2, dword [ecx + esi + 4]
movdqa xmm4, xmmword [str.....]
pcmpeqb xmm3, xmm4
punpcklbw xmm3, xmm3
punpcklwd xmm3, xmm3
movdqa xmm5, xmmword [0x8d01f0]
pand xmm3, xmm5
paddd xmm0, xmm3
pcmpeqb xmm2, xmm4
punpcklbw xmm2, xmm2
punpcklwd xmm2, xmm2
pand xmm2, xmm5
paddd xmm1, xmm2
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0x55
paddd xmm0, xmm1
movd esi, xmm0
cmp edx, edi
jne 0x646b50
mov ebx, dword [esp + 8]
jmp 0x646b6f
add edi, ecx
mov ebx, dword [esp + 8]
add ecx, edx
nop dword [eax + eax]
xor edx, edx
cmp byte [edi], 0x2e
sete dl
add esi, edx
inc edi
cmp edi, ecx
jne 0x646b60
cmp esi, 0x65
jb 0x646b8f
mov ecx, dword [esp + 4]
push str.Exceeds_Maximum_Package_Depth
push 0
push dword [ebp + 8]
push eax
call fcn.00643220
xor esi, esi
jmp 0x647de3
mov ecx, dword [esp + 4]
push ebx
mov esi, dword [ebp + 8]
push esi
push eax
call fcn.006459d0
lea eax, [esp + 0x5c]
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x18], eax
mov esi, dword [esi + 0x14]
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebx]
test edi, edi
jne 0x646bfe
lea edi, [esp + 0x70]
mov ecx, edi
push 0x187
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, edi
push str.CHECK_failed:_has_allocated__:
call fcn.0062ff70
lea ecx, [esp + 0x28]
push eax
call fcn.006300f0
mov ecx, edi
call fcn.00630770
mov edi, dword [ebx]
mov ecx, ebx
mov ebx, dword [ebx + 0x68]
lea eax, [esi*4 + 7]
and eax, 0xfffffff8
add eax, ebx
mov dword [ecx + 0x68], eax
cmp eax, dword [ecx + 0x34]
jle 0x646c4b
lea esi, [esp + 0x70]
mov ecx, esi
push 0x18d
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.CHECK_failed:__used_____total_.template_Get_TypeToUse____:
call fcn.0062ff70
lea ecx, [esp + 0x28]
push eax
call fcn.006300f0
mov ecx, esi
call fcn.00630770
add edi, ebx
mov eax, dword [esp + 8]
mov dword [eax + 0x30], edi
mov dword [eax + 0x14], 0
mov esi, dword [esp + 4]
lea ecx, [esi + 0x50]
lea edi, [esi + 0x54]
mov dword [esp + 0x44], ecx
push dword [esi + 0x54]
call fcn.0065c220
mov dword [esi + 0x58], 0
mov dword [esp + 0x14], edi
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], 0
lea eax, [esp + 0x4c]
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x646d45
xor edx, edx
jmp 0x646cd0
mov ebx, dword [ebp + 8]
push eax
push dword [esp + 0x50]
call fcn.004586f0
add esp, 8
inc dword [esp + 0x50]
mov eax, dword [ebx + 0x6c]
mov edx, dword [esp + 0xc]
inc edx
cmp edx, eax
jge 0x646d45
mov ecx, dword [ebx + 0x74]
mov ebx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x4c]
lea edi, [esp + 0x4c]
jmp 0x646ce2
mov ecx, dword [edi]
mov esi, edi
test ecx, ecx
je 0x646cfd
mov edi, ecx
mov ecx, dword [ecx + 0x10]
cmp ebx, ecx
jl 0x646ce0
jle 0x646d40
mov ecx, dword [edi + 4]
test ecx, ecx
jne 0x646ce8
lea esi, [edi + 4]
mov dword [esp + 0xc], edx
push 0x14
call fcn.0051c3d0
add esp, 4
mov dword [eax + 0x10], ebx
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], edi
mov dword [esi], eax
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
test ecx, ecx
je 0x646cb0
mov dword [esp + 0x48], ecx
mov eax, dword [esi]
jmp 0x646cb0
mov ebx, dword [ebp + 8]
jmp 0x646ccb
cmp dword [ebx + 0x14], 0
jle 0x6471a3
mov edi, dword [esp + 4]
lea eax, [edi + 4]
mov dword [esp + 0x10], eax
mov esi, ebx
xor ebx, ebx
xor edx, edx
jmp 0x646db6
cmp dword [esp + 8], 0
je 0x64709b
mov eax, dword [edi]
xor esi, esi
cmp byte [eax + 0x15], 0
je 0x646f36
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x30]
mov dword [eax + edx*4], esi
mov eax, dword [edi]
test esi, esi
movzx ecx, bl
mov ebx, 1
cmovne ebx, ecx
cmp byte [eax + 0x15], 0
cmove ebx, ecx
inc edx
mov esi, dword [ebp + 8]
cmp edx, dword [esi + 0x14]
jge 0x6470a2
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + edx*4 + 4]
lea ecx, [esp + 0x58]
push eax
push eax
mov edi, edx
call fcn.0045e8d0
mov eax, 1
test edx, eax
jne 0x646dde
mov ecx, dword [esp + 4]
push edi
push esi
call fcn.00646150
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xc], edi
mov eax, dword [eax + edi*4 + 4]
movzx edx, byte [eax]
test dl, 1
je 0x646e00
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x646e03
inc eax
shr edx, 1
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov esi, 0x88
add ecx, esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
lea eax, [esp + 0x70]
push eax
call fcn.0065c000
test eax, eax
je 0x646e40
mov esi, dword [eax + 0x10]
test esi, esi
mov edx, dword [esp + 0xc]
je 0x646e44
cmp esi, dword [esp + 8]
jne 0x646e70
jmp 0x64709b
mov edx, dword [esp + 0xc]
mov eax, dword [edi]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x646d70
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
push dword [eax + edx*4 + 4]
call fcn.006364b0
mov edx, dword [esp + 0xc]
mov esi, eax
cmp esi, dword [esp + 8]
je 0x64709b
test esi, esi
je 0x646d7b
mov ecx, dword [edi]
cmp byte [ecx + 0x14], 0
je 0x646d89
add ecx, 0x1c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x78]
and eax, 0xfffffffc
push eax
call fcn.006614c0
mov ecx, dword [edi]
add ecx, 0x20
cmp eax, ecx
je 0x64701e
cmp dword [esi + 0x1c], 0
mov edx, dword [esp + 0xc]
jne 0x646d89
mov edi, dword [esp + 0x14]
nop word cs:[eax + eax]
mov eax, dword [edi]
mov ecx, edi
test eax, eax
je 0x646ee1
mov edi, eax
mov eax, dword [eax + 0x10]
cmp esi, eax
jb 0x646ec0
jbe 0x647092
mov eax, dword [edi + 4]
test eax, eax
jne 0x646ec8
lea ecx, [edi + 4]
mov dword [esp + 0x24], ecx
push 0x14
call fcn.0051c3d0
add esp, 4
mov dword [eax + 0x10], esi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], edi
mov ecx, dword [esp + 0x24]
mov edi, ecx
mov dword [ecx], eax
mov edx, dword [esp + 0x44]
mov ecx, dword [edx]
mov ecx, dword [ecx]
test ecx, ecx
je 0x646f1a
mov dword [edx], ecx
mov eax, dword [edi]
mov edi, dword [esp + 4]
push eax
push dword [edi + 0x54]
call fcn.004586f0
add esp, 8
inc dword [edi + 0x58]
mov edx, dword [esp + 0xc]
jmp 0x646d89
cmp byte [eax + 0x16], 0
je 0x647027
pxor xmm0, xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqu xmmword [esp + 0xfc], xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0xa4], 0x58
mov dword [esp + 0xa8], 1
lea ecx, [esp + 0x70]
mov edx, dword [esp + 0x10]
call fcn.00646320
mov edi, dword [esp + 4]
mov ecx, dword [edi]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + edx*4 + 4]
movzx edx, byte [eax]
mov esi, edx
shr esi, 1
test dl, 1
lea edx, [eax + 1]
cmovne edx, dword [eax + 8]
mov dword [esp + 0x148], edx
cmovne esi, dword [eax + 4]
mov dword [esp + 0x14c], esi
sub esp, 0xc
movq xmm0, qword [esp + 0x154]
movq qword [esp], xmm0
lea eax, [esp + 0x7c]
mov dword [esp + 8], eax
call fcn.00644c60
mov edx, dword [esp + 0xc]
mov esi, eax
jmp 0x646d89
mov edx, dword [esp + 0xc]
jmp 0x646d89
cmp byte [eax + 0x17], 0
jne 0x647076
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x647076
lea eax, [esp + 0x4c]
nop dword [eax]
mov edi, esi
mov ecx, eax
mov edx, dword [esi + 0x10]
add esi, 4
cmp edx, dword [esp + 0xc]
cmovge esi, edi
mov eax, edi
cmovl eax, ecx
mov esi, dword [esi]
test esi, esi
jne 0x647040
lea esi, [esp + 0x4c]
cmp eax, esi
je 0x647076
mov eax, dword [esp + 0xc]
cmp edx, eax
cmovl edi, ecx
cmp eax, dword [edi + 0x10]
jge 0x646f40
mov edi, dword [esp + 4]
mov ecx, edi
mov esi, dword [esp + 0xc]
push esi
push dword [ebp + 8]
call fcn.006461f0
mov edx, esi
xor esi, esi
jmp 0x646d89
mov edi, dword [esp + 4]
jmp 0x646d89
xor esi, esi
jmp 0x647dc9
test bl, 1
mov ebx, esi
je 0x6471a3
mov ecx, dword [ebx + 0x14]
test ecx, ecx
jle 0x6470ed
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x30]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0xc], eax
xor edi, edi
xor eax, eax
jmp 0x6470d3
mov ebx, dword [esi + 4]
add eax, ebx
inc eax
inc edi
cmp ecx, edi
je 0x6470ef
cmp dword [edx + edi*4], 0
jne 0x6470cd
mov esi, dword [esp + 0xc]
mov esi, dword [esi + edi*4 + 4]
movzx ebx, byte [esi]
test bl, 1
jne 0x6470c8
shr ebx, 1
jmp 0x6470cb
xor eax, eax
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx]
lea ebx, [eax + 4]
add eax, 0xc
push eax
call fcn.0051c3d0
add esp, 4
mov esi, eax
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x60]
cmp eax, dword [edi + 0x64]
jae 0x64711a
mov dword [eax], esi
add dword [edi + 0x60], 4
jmp 0x647129
add edi, 0x5c
mov ecx, edi
lea eax, [esp + 0x70]
push eax
call fcn.0065f160
mov eax, dword [esp + 0x70]
mov dword [eax], ebx
lea eax, [esi + 8]
mov dword [esi + 8], 0
mov ecx, dword [esp + 8]
mov dword [ecx + 0x14], eax
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0x14], 0
jle 0x6471a3
add esi, 0xc
xor edi, edi
jmp 0x64715f
mov eax, dword [ecx + 4]
add esi, eax
mov byte [esi], 0
inc esi
inc edi
cmp edi, dword [ebx + 0x14]
jge 0x6471a3
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x30]
cmp dword [eax + edi*4], 0
jne 0x647155
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + edi*4 + 4]
movzx ecx, byte [eax]
test cl, 1
je 0x647183
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
jmp 0x647186
inc eax
shr ecx, 1
push ecx
push eax
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0x1c]
mov ecx, dword [eax + edi*4 + 4]
movzx eax, byte [ecx]
test al, 1
jne 0x647150
shr eax, 1
jmp 0x647153
mov edx, dword [ebx + 0x60]
mov ecx, dword [ebp + 0xc]
call fcn.00647ee0
mov ecx, dword [esp + 8]
mov dword [ecx + 0x34], eax
cmp dword [ebx + 0x60], 0
jle 0x6472f5
xor edi, edi
mov dword [esp + 0xc], 0
jmp 0x6471f2
mov eax, dword [ebx + 0x78]
and eax, 0xfffffffc
mov ecx, dword [esp + 4]
push str.Invalid_public_dependency_index.
push 0xa
push ebx
push eax
call fcn.00643220
inc edi
cmp edi, dword [ebx + 0x60]
jge 0x6472fd
mov eax, dword [ebx + 0x68]
mov esi, dword [eax + edi*4]
test esi, esi
js 0x6471d0
cmp esi, dword [ebx + 0x14]
jge 0x6471d0
mov ebx, dword [esp + 8]
mov eax, dword [ebx + 0x34]
mov ecx, dword [esp + 0xc]
mov dword [eax + ecx*4], esi
inc ecx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 4]
mov eax, dword [eax]
cmp byte [eax + 0x15], 0
je 0x647225
mov ebx, dword [ebp + 8]
jmp 0x6471e8
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x647262
mov dword [esp + 0x18], ebx
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x647262
mov dword [esp + 0x70], 0x6566c0
lea ecx, [esp + 0x18]
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x28], ecx
push 0x664bf0
lea ecx, [esp + 0x2c]
push ecx
push eax
call fcn.0051c150
add esp, 0xc
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
test eax, eax
je 0x647220
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax + esi*4]
mov ebx, edx
mov esi, dword [esp + 0x10]
mov edx, esi
nop
lea eax, [edx + 4]
cmp dword [edx + 0x10], ecx
cmovae eax, edx
cmovae ebx, edx
mov edx, dword [eax]
test edx, edx
jne 0x647280
cmp ebx, dword [esp + 0x14]
je 0x647220
cmp ecx, dword [ebx + 0x10]
jb 0x647220
mov edx, dword [ebx + 4]
mov eax, ebx
test edx, edx
je 0x6472c0
nop word [eax + eax]
mov ecx, edx
mov edx, dword [edx]
test edx, edx
jne 0x6472b0
jmp 0x6472c9
mov ecx, dword [eax + 8]
cmp dword [ecx], eax
mov eax, ecx
jne 0x6472c0
mov eax, dword [esp + 0x44]
cmp dword [eax], ebx
jne 0x6472d3
mov dword [eax], ecx
mov eax, dword [esp + 4]
dec dword [eax + 0x58]
push ebx
push esi
call fcn.004583d0
add esp, 8
push ebx
call fcn.0051c570
add esp, 4
mov ebx, dword [ebp + 8]
jmp 0x6471e8
mov dword [esp + 0xc], 0
mov edi, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov dword [edi + 0x1c], eax
mov ebx, dword [esp + 4]
lea ecx, [ebx + 0x30]
lea esi, [ebx + 0x34]
push dword [ebx + 0x34]
call fcn.0065c220
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], 0
mov eax, dword [ebx]
cmp byte [eax + 0x15], 0
je 0x64739e
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x6c]
mov ecx, dword [ebp + 0xc]
call fcn.00647ee0
mov dword [edi + 0x38], eax
cmp dword [ebx + 0x6c], 0
jle 0x647408
xor edi, edi
xor esi, esi
jmp 0x647382
mov eax, dword [ebx + 0x78]
and eax, 0xfffffffc
mov ecx, dword [esp + 4]
push str.Invalid_weak_dependency_index.
push 0xa
push ebx
push eax
call fcn.00643220
inc edi
cmp edi, dword [ebx + 0x6c]
jge 0x64740a
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + edi*4]
test eax, eax
js 0x647360
cmp eax, dword [ebx + 0x14]
jge 0x647360
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0x38]
mov dword [ecx + esi*4], eax
inc esi
jmp 0x647378
cmp dword [edi + 0x18], 0
jle 0x647333
xor esi, esi
lea ebx, [esp + 0x28]
jmp 0x6473cd
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 4]
push dword [eax + esi*4]
call fcn.006438c0
inc esi
cmp esi, dword [edi + 0x18]
jge 0x647333
mov eax, dword [edi + 0x14]
test eax, eax
je 0x6473b4
mov dword [esp + 0x18], edi
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x6473b0
mov dword [esp + 0x70], 0x6566c0
lea ecx, [esp + 0x18]
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x28], ecx
push 0x664bf0
push ebx
push eax
call fcn.0051c150
add esp, 0xc
jmp 0x6473b0
xor esi, esi
mov edi, dword [esp + 8]
mov dword [edi + 0x20], esi
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x24], eax
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebp + 0xc]
call fcn.006451c0
mov ecx, edi
mov dword [edi + 0x3c], eax
cmp dword [ebx + 0x24], 0
jle 0x647468
xor esi, esi
xor edi, edi
nop word cs:[eax + eax]
mov eax, dword [ebx + 0x2c]
mov edx, dword [ecx + 0x3c]
add edx, esi
mov ecx, dword [esp + 4]
push dword [ebp + 0xc]
push edx
push 0
push dword [eax + edi*4 + 4]
call fcn.00647f80
mov ecx, dword [esp + 8]
inc edi
add esi, 0x58
cmp edi, dword [ebx + 0x24]
jl 0x647440
mov eax, dword [ebx + 0x34]
mov dword [ecx + 0x28], eax
mov edx, dword [ebx + 0x34]
mov ecx, dword [ebp + 0xc]
call fcn.00644e80
mov ecx, dword [esp + 8]
mov dword [ecx + 0x40], eax
cmp dword [ebx + 0x34], 0
jle 0x6474b8
xor esi, esi
xor edi, edi
nop word [eax + eax]
mov eax, dword [ebx + 0x3c]
mov edx, dword [ecx + 0x40]
add edx, esi
mov ecx, dword [esp + 4]
push dword [ebp + 0xc]
push edx
push 0
push dword [eax + edi*4 + 4]
call fcn.00649a20
mov ecx, dword [esp + 8]
inc edi
add esi, 0x2c
cmp edi, dword [ebx + 0x34]
jl 0x647490
mov eax, dword [ebx + 0x44]
mov dword [ecx + 0x2c], eax
mov ebx, dword [ebx + 0x44]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx]
test edi, edi
jne 0x647504
lea esi, [esp + 0x70]
mov edi, ecx
mov ecx, esi
push 0x187
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.CHECK_failed:_has_allocated__:
call fcn.0062ff70
lea ecx, [esp + 0x28]
push eax
call fcn.006300f0
mov ecx, esi
call fcn.00630770
mov ecx, edi
mov edi, dword [edi]
mov esi, dword [ecx + 0x68]
lea eax, [ebx + ebx*2]
lea eax, [esi + eax*8]
mov dword [ecx + 0x68], eax
cmp eax, dword [ecx + 0x34]
jle 0x647549
lea ebx, [esp + 0x70]
mov ecx, ebx
push 0x18d
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, ebx
push str.CHECK_failed:__used_____total_.template_Get_TypeToUse____:
call fcn.0062ff70
lea ecx, [esp + 0x28]
push eax
call fcn.006300f0
mov ecx, ebx
call fcn.00630770
mov ecx, dword [ebp + 8]
add edi, esi
mov ebx, dword [esp + 8]
mov dword [ebx + 0x44], edi
cmp dword [ecx + 0x44], 0
jle 0x647592
xor esi, esi
xor edi, edi
nop
mov eax, dword [ecx + 0x4c]
mov eax, dword [eax + edi*4 + 4]
mov ecx, dword [ebx + 0x44]
add ecx, esi
sub esp, 0x10
mov edx, dword [ebp + 0xc]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], eax
mov ecx, dword [esp + 0x14]
call fcn.0064a850
mov ecx, dword [ebp + 8]
inc edi
add esi, 0x18
cmp edi, dword [ecx + 0x44]
jl 0x647560
mov eax, dword [ecx + 0x54]
mov dword [ebx + 4], eax
mov edx, dword [ecx + 0x54]
mov ecx, dword [ebp + 0xc]
call fcn.0064aa30
mov ecx, dword [ebp + 8]
mov dword [ebx + 0x48], eax
cmp dword [ecx + 0x54], 0
jle 0x6475e9
xor esi, esi
xor edi, edi
nop word cs:[eax + eax]
mov eax, dword [ecx + 0x5c]
mov edx, dword [ebx + 0x48]
add edx, esi
mov ecx, dword [esp + 4]
push dword [ebp + 0xc]
push 1
push edx
push 0
push dword [eax + edi*4 + 4]
call fcn.0064c950
mov ecx, dword [ebp + 8]
inc edi
add esi, 0x30
cmp edi, dword [ecx + 0x54]
jl 0x6475c0
mov dword [ebx + 0x4c], 0
test byte [ecx + 8], 8
mov edi, dword [esp + 4]
mov eax, ecx
je 0x64761a
mov eax, dword [eax + 0x84]
test eax, eax
jne 0x64760b
mov eax, dword [0x8d3304]
mov ecx, edi
push dword [ebp + 0xc]
push ebx
push eax
call fcn.00645e80
mov eax, dword [ebp + 8]
mov ecx, edi
push eax
push ebx
call fcn.0064aad0
cmp dword [edi + 0x48], 0
je 0x647634
sub esp, 4
mov ecx, edi
push ebx
call fcn.0064ac70
mov al, 1
cmp byte [edi + 0x18], 0
jne 0x647d56
pxor xmm0, xmm0
movdqu xmmword [esp + 0x84], xmm0
movdqu xmmword [esp + 0x74], xmm0
movdqu xmmword [esp + 0xa4], xmm0
movdqu xmmword [esp + 0x94], xmm0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0x70], edi
lea eax, [esp + 0x80]
mov dword [esp + 0x84], 0
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x8c]
mov dword [esp + 0x90], 0
mov dword [esp + 0x88], eax
lea ecx, [esp + 0x94]
call fcn.00668910
cmp dword [esp + 0x70], 0
jne 0x6476f5
lea esi, [esp + 0x28]
mov ecx, esi
push 0x1c6a
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.CHECK_failed:_builder_:
call fcn.0062ff70
lea ecx, [esp + 0x18]
push eax
call fcn.006300f0
mov ecx, esi
call fcn.00630770
mov ecx, dword [edi + 0xc]
cmp ecx, dword [edi + 0x10]
jne 0x647720
jmp 0x647cfa
mov ecx, dword [esp + 0x24]
add ecx, 0x2c
cmp ecx, dword [esi + 0x10]
je 0x647ced
mov eax, dword [ecx + 0x24]
mov dword [esp + 0xc], eax
mov esi, dword [ecx + 0x28]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x74], ecx
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x40]
mov edi, eax
push 0x20
call fcn.0051c3d0
add esp, 4
mov ebx, eax
movups xmm0, xmmword [0x8d24e3]
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0x6e6f6974
mov byte [eax + 0x14], 0
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], 0x14
sub esp, 0xc
movsd xmm0, qword [esp + 0x34]
movsd qword [esp + 4], xmm0
mov dword [esp], edi
call fcn.0065a820
cmp byte [eax], 2
mov dword [esp + 0x10], esi
jne 0x6477b0
mov edi, eax
test byte [eax + 1], 8
jne 0x6477b0
push ebx
call fcn.0051c570
add esp, 4
jmp 0x6477ff
push ebx
call fcn.0051c570
add esp, 4
lea esi, [esp + 0x28]
mov ecx, esi
push 0x1c7d
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.CHECK_failed:_uninterpreted_options_field___nullptr:
call fcn.0062ff70
mov ecx, eax
push str.No_field_named__uninterpreted_option__in_the_Options_proto.
call fcn.0062ff70
lea ecx, [esp + 0x18]
push eax
call fcn.006300f0
mov ecx, esi
mov esi, dword [esp + 0x10]
call fcn.00630770
xor edi, edi
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x40]
mov ecx, edx
push edi
push esi
call fcn.005459d0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0x18]
mov esi, eax
sub esi, ecx
sub eax, ecx
je 0x6478a0
js 0x647e6a
sar esi, 2
push eax
call fcn.0051c3d0
add esp, 4
mov ebx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
lea edx, [eax + esi*4]
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x18]
mov esi, dword [ecx + 0x1c]
sub esi, eax
test esi, esi
jle 0x647885
push esi
push eax
push ebx
mov dword [esp + 0x20], edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov edx, dword [esp + 0x20]
add esp, 0xc
add ebx, esi
mov dword [esp + 0x1c], ebx
mov eax, dword [edi + 4]
mov dword [esp + 0x28], eax
cmp ebx, edx
jae 0x6478a7
mov dword [ebx], eax
add ebx, 4
mov dword [esp + 0x1c], ebx
jmp 0x6478b5
mov eax, dword [edi + 4]
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x18]
lea eax, [esp + 0x28]
push eax
call fcn.00660e00
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
call dword [eax + 0x40]
mov edi, eax
push 0x20
call fcn.0051c3d0
add esp, 4
mov ebx, eax
movups xmm0, xmmword [0x8d24e3]
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0x6e6f6974
mov byte [eax + 0x14], 0
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], 0x14
sub esp, 0xc
movq xmm0, qword [esp + 0x34]
movq qword [esp + 4], xmm0
mov dword [esp], edi
call fcn.0065a820
cmp byte [eax], 2
jne 0x647930
mov edi, eax
test byte [eax + 1], 8
jne 0x647930
push ebx
call fcn.0051c570
add esp, 4
jmp 0x64797e
push ebx
call fcn.0051c570
add esp, 4
lea esi, [esp + 0x28]
mov ecx, esi
push 0x1c88
push str.external_protobuf_src_google_protobuf_descriptor.cc
push 3
call fcn.00630740
mov ecx, esi
push str.CHECK_failed:_original_uninterpreted_options_field___nullptr:
call fcn.0062ff70
mov ecx, eax
push str.No_field_named__uninterpreted_option__in_the_Options_proto.
call fcn.0062ff70
lea ecx, [esp + 0x118]
push eax
call fcn.006300f0
mov ecx, esi
call fcn.00630770
xor edi, edi
mov esi, dword [esp + 0xc]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x40]
mov ecx, edx
mov dword [esp + 0x14], edi
push edi
push esi
call fcn.00546d70
mov dword [esp + 0x28], 0
test eax, eax
jle 0x647a45
mov ebx, eax
mov eax, dword [esp + 0x24]
add eax, 0x18
mov dword [esp + 0x44], eax
xor ecx, ecx
mov eax, dword [esp + 0x1c]
nop dword [eax]
cmp eax, dword [esp + 0x20]
je 0x6479e0
mov dword [eax], ecx
add dword [esp + 0x1c], 4
lea edi, [esp + 0x18]
jmp 0x6479f0
lea edi, [esp + 0x18]
mov ecx, edi
lea eax, [esp + 0x28]
push eax
call fcn.00420d20
mov esi, dword [esp + 0xc]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x40]
mov ecx, edx
push dword [esp + 0x28]
push dword [esp + 0x18]
push esi
call fcn.0054c740
mov dword [esp + 0x78], eax
lea ecx, [esp + 0x70]
push dword [esp + 0x44]
push edi
push dword [esp + 0x18]
call fcn.00653540
test al, al
je 0x647b70
mov eax, dword [esp + 0x1c]
add eax, 0xfffffffc
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x28], ecx
cmp ecx, ebx
jl 0x6479c0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
mov ecx, esi
push 0
call dword [eax + 0xc]
mov edi, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x40]
mov ecx, edx
push esi
push edi
call fcn.005457d0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
mov ecx, edi
lea eax, [esp + 0x28]
push eax
call fcn.004a1930
test al, al
je 0x647ab0
mov ecx, esi
lea eax, [esp + 0x28]
push eax
call fcn.004a11c0
test al, al
jne 0x647c3a
mov eax, dword [esp + 0x70]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
lea ebx, [eax + 0xc]
lea esi, [esp + 0x150]
mov ecx, esi
push edi
call fcn.004a2ca0
mov ecx, esi
mov esi, dword [esp + 0x10]
push str.Some_options_could_not_be_correctly_parsed_using_the_proto_descriptors_compiled_into_this_binary._nUnparsed_options:
push 0
call fcn.005208d0
mov ecx, dword [eax + 8]
mov dword [esp + 0x130], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x128], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
lea ecx, [esp + 0x128]
push str._nParsing_attempt:
call fcn.00520360
mov ecx, dword [eax + 8]
mov dword [esp + 0x140], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x138], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
lea ecx, [esp + 0x64]
push esi
call fcn.004a2ca0
movzx eax, byte [esp + 0x64]
test al, 1
je 0x647b85
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
jmp 0x647b8b
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
jmp 0x647c54
shr eax, 1
lea edx, [esp + 0x65]
lea ecx, [esp + 0x138]
push eax
push edx
call fcn.00520110
mov ecx, dword [eax + 8]
mov dword [esp + 0x120], ecx
movq xmm0, qword [eax]
movq qword [esp + 0x118], xmm0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x118]
push eax
push 0xa
push dword [esp + 0x14]
push ebx
call fcn.00643140
test byte [esp + 0x118], 1
jne 0x647c7a
test byte [esp + 0x64], 1
jne 0x647c94
test byte [esp + 0x138], 1
jne 0x647cae
test byte [esp + 0x128], 1
jne 0x647ccb
test byte [esp + 0x150], 1
je 0x647c2a
push dword [esp + 0x158]
call fcn.0051c570
add esp, 4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x40]
mov ecx, edx
push esi
push edi
call fcn.005457d0
test byte [esp + 0x28], 1
je 0x647c4d
push dword [esp + 0x30]
call fcn.0051c570
add esp, 4
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x18]
test eax, eax
mov esi, dword [esp + 4]
je 0x647710
mov dword [esp + 0x1c], eax
push eax
call fcn.0051c570
add esp, 4
jmp 0x647710
push dword [esp + 0x120]
call fcn.0051c570
add esp, 4
test byte [esp + 0x64], 1
je 0x647bf5
push dword [esp + 0x6c]
call fcn.0051c570
add esp, 4
test byte [esp + 0x138], 1
je 0x647c03
push dword [esp + 0x140]
call fcn.0051c570
add esp, 4
test byte [esp + 0x128], 1
je 0x647c11
push dword [esp + 0x130]
call fcn.0051c570
add esp, 4
test byte [esp + 0x150], 1
jne 0x647c1b
jmp 0x647c2a
mov esi, dword [esi + 0xc]
cmp ecx, esi
jne 0x647dfa
mov ecx, esi
lea esi, [esp + 0x7c]
lea edi, [esp + 0x88]
mov eax, dword [esp + 4]
mov dword [eax + 0x10], ecx
mov eax, dword [esp + 0x54]
test eax, eax
je 0x647d1e
lea ecx, [esp + 0x70]
push eax
call fcn.0064b430
lea ecx, [esp + 0x94]
call fcn.00668970
mov ecx, edi
push dword [esp + 0x8c]
call fcn.0065d170
mov ecx, esi
push dword [esp + 0x80]
call fcn.0065d1b0
mov edi, dword [esp + 4]
movzx eax, byte [edi + 0x18]
test al, al
je 0x647e3c
mov ecx, dword [ebp + 8]
test al, al
je 0x647d9e
cmp dword [ecx + 0x24], 0
jle 0x647d9e
xor esi, esi
mov ebx, edi
xor edi, edi
nop dword [eax]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x3c]
add eax, esi
mov edx, dword [ecx + 0x2c]
mov ecx, ebx
push dword [edx + edi*4 + 4]
push eax
call fcn.0064bb90
mov ecx, dword [ebp + 8]
inc edi
add esi, 0x58
cmp edi, dword [ecx + 0x24]
jl 0x647d70
movzx eax, byte [ebx + 0x18]
mov edi, ebx
mov ebx, dword [esp + 8]
test al, al
jne 0x647dc1
cmp dword [edi + 0x58], 0
je 0x647dc1
mov eax, dword [edi]
cmp byte [eax + 0x15], 0
jne 0x647dc7
sub esp, 4
mov eax, ecx
mov ecx, edi
push eax
call fcn.0064c060
movzx eax, byte [edi + 0x18]
xor esi, esi
test al, al
jne 0x647dc9
mov esi, ebx
lea ecx, [esp + 0x48]
push dword [esp + 0x4c]
call fcn.00552bf0
lea ecx, [esp + 0x58]
push dword [esp + 0x5c]
call fcn.0045ea70
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov ecx, edi
cmp edi, esi
je 0x647cf8
mov eax, dword [ecx - 0x14]
test eax, eax
je 0x647e11
mov dword [ecx - 0x10], eax
push eax
mov edi, ecx
call fcn.0051c570
mov ecx, edi
add esp, 4
test byte [ecx - 0x20], 1
je 0x647e26
push dword [ecx - 0x18]
mov edi, ecx
call fcn.0051c570
mov ecx, edi
add esp, 4
lea edi, [ecx - 0x2c]
test byte [ecx - 0x2c], 1
je 0x647df0
push dword [ecx - 0x24]
call fcn.0051c570
add esp, 4
jmp 0x647df0
mov eax, dword [edi]
cmp byte [eax + 0x15], 0
je 0x647e56
xor eax, eax
mov ecx, dword [ebp + 8]
test al, al
je 0x647da2
jmp 0x647dc1
mov ecx, edi
push dword [ebp + 8]
push ebx
call fcn.0064b8a0
movzx eax, byte [edi + 0x18]
jmp 0x647d56
lea ecx, [esp + 0x18]
call fcn.005256b0
nop word cs:[eax + eax]