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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x210
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x647fa3
mov edi, ecx
mov eax, dword [eax + 8]
add eax, 0xc
jmp 0x647fab
mov edi, ecx
mov eax, dword [ecx + 0x28]
mov eax, dword [eax + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x90]
and ecx, 0xfffffffc
push dword [ebp + 0x14]
push ecx
push eax
call fcn.0064c1d0
mov dword [esi + 8], eax
mov edx, dword [ebx + 0x90]
and edx, 0xfffffffc
add eax, 0xc
mov ecx, edi
push ebx
push eax
push edx
call fcn.00645d80
mov eax, dword [edi + 0x28]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x10], eax
and byte [esi + 1], 0x80
mov dword [esi + 0x14], 0
mov dword [esp + 0xc], edi
mov eax, dword [edi]
mov ecx, dword [eax + 0x10]
add ecx, 0x48
mov eax, dword [esi + 8]
add eax, 0xc
push eax
call fcn.006615c0
test eax, eax
je 0x648022
movzx eax, byte [eax + 0x14]
movzx ecx, byte [esi + 1]
shl al, 2
and al, 0x7c
and cl, 0x83
or cl, al
mov byte [esi + 1], cl
mov word [esi + 2], 0
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 0
mov edi, dword [ebp + 0x14]
jle 0x64806f
xor eax, eax
nop word cs:[eax + eax]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx + eax*4 + 4]
mov ecx, dword [ecx + 0x28]
lea edx, [eax + 1]
cmp ecx, edx
jne 0x64806c
mov edx, dword [ebp + 0x10]
mov word [edx + 2], cx
cmp eax, 0xfffd
ja 0x64806c
mov eax, ecx
mov edx, dword [ebp + 8]
cmp ecx, dword [edx + 0x14]
jl 0x648040
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x64]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x64]
mov esi, dword [edi]
test esi, esi
jne 0x6480bd
lea edi, [esp + 0x48]
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 + 0x74]
push eax
call fcn.006300f0
mov ecx, edi
mov edi, dword [ebp + 0x14]
call fcn.00630770
mov esi, dword [edi]
mov ecx, edi
mov edi, dword [edi + 0x68]
lea eax, [ebx + ebx*2]
lea eax, [edi + eax*8]
mov dword [ecx + 0x68], eax
cmp eax, dword [ecx + 0x34]
jle 0x648104
lea ebx, [esp + 0x48]
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 + 0x74]
push eax
call fcn.006300f0
mov ecx, ebx
call fcn.00630770
add esi, edi
mov eax, dword [ebp + 0x10]
mov dword [eax + 0x1c], esi
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x64], 0
jle 0x64814f
xor esi, esi
xor edi, edi
nop dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx + 0x1c]
add ebx, esi
mov ecx, dword [esp + 0xc]
push dword [ebp + 0x14]
push ebx
push edx
push dword [eax + edi*4 + 4]
call fcn.0064c430
inc edi
add esi, 0x18
mov eax, dword [ebp + 8]
cmp edi, dword [eax + 0x64]
jl 0x648120
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x14]
mov dword [eax + 4], ecx
mov edx, dword [esi + 0x14]
mov edi, dword [ebp + 0x14]
mov ecx, edi
call fcn.0064aa30
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x18], eax
cmp dword [esi + 0x14], 0
jle 0x6481b4
xor esi, esi
xor edi, edi
nop word cs:[eax + eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx + 0x18]
add ebx, esi
mov ecx, dword [esp + 0xc]
push dword [ebp + 0x14]
push 0
push ebx
push edx
push dword [eax + edi*4 + 4]
call fcn.0064c950
inc edi
add esi, 0x30
mov eax, dword [ebp + 8]
cmp edi, dword [eax + 0x14]
jl 0x648180
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov dword [ecx + 0x44], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x34]
mov ecx, edi
call fcn.00644e80
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x34], 0
jle 0x648212
xor esi, esi
xor edi, edi
nop dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx + 0x24]
add ebx, esi
mov ecx, dword [esp + 0xc]
push dword [ebp + 0x14]
push ebx
push edx
push dword [eax + edi*4 + 4]
call fcn.00649a20
inc edi
add esi, 0x2c
mov eax, dword [ebp + 8]
cmp edi, dword [eax + 0x34]
jl 0x6481e0
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x44]
mov dword [ecx + 0x48], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov ecx, edi
call fcn.00645260
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jle 0x648272
xor esi, esi
xor edi, edi
nop dword [eax + eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x4c]
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx + 0x28]
add ebx, esi
mov ecx, dword [esp + 0xc]
push dword [ebp + 0x14]
push ebx
push edx
push dword [eax + edi*4 + 4]
call fcn.0064c540
inc edi
add esi, 0xc
mov eax, dword [ebp + 8]
cmp edi, dword [eax + 0x44]
jl 0x648240
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x54]
mov dword [ecx + 0x4c], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x54]
mov ecx, edi
call fcn.0064aa30
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x54], 0
jle 0x6482d4
xor esi, esi
xor edi, edi
nop dword [eax + eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x5c]
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx + 0x2c]
add ebx, esi
mov ecx, dword [esp + 0xc]
push dword [ebp + 0x14]
push 1
push ebx
push edx
push dword [eax + edi*4 + 4]
call fcn.0064c950
inc edi
add esi, 0x30
mov eax, dword [ebp + 8]
cmp edi, dword [eax + 0x54]
jl 0x6482a0
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x74]
mov dword [ecx + 0x50], eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x74]
mov esi, dword [edi]
test esi, esi
jne 0x648322
lea edi, [esp + 0x48]
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 + 0x74]
push eax
call fcn.006300f0
mov ecx, edi
mov edi, dword [ebp + 0x14]
call fcn.00630770
mov esi, dword [edi]
mov ecx, edi
mov edi, dword [edi + 0x68]
lea eax, [edi + ebx*8]
mov dword [ecx + 0x68], eax
cmp eax, dword [ecx + 0x34]
jle 0x648366
lea ebx, [esp + 0x48]
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 + 0x74]
push eax
call fcn.006300f0
mov ecx, ebx
call fcn.00630770
add esi, edi
mov eax, dword [ebp + 0x10]
mov dword [eax + 0x30], esi
mov eax, dword [ebp + 8]
cmp dword [eax + 0x74], 0
jle 0x64847d
mov eax, dword [esp + 0xc]
add eax, 0x3c
mov dword [esp + 0x20], eax
mov edx, dword [ebp + 8]
xor esi, esi
jmp 0x6483c6
mov dword [eax + 0xc], ecx
cmp dword [eax + 0x10], 0
je 0x64846e
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 8]
add eax, 0xc
mov ecx, dword [esp + 0xc]
push str.Reserved_numbers_must_be_positive_integers.
push 1
push ebx
push eax
call fcn.00643220
mov edx, dword [ebp + 8]
inc esi
cmp esi, dword [edx + 0x74]
jge 0x64847d
mov eax, dword [edx + 0x7c]
mov ebx, dword [eax + esi*4 + 4]
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 0x30]
mov dword [esp + 0x74], eax
mov eax, dword [ebx + 0x10]
mov dword [edi + esi*8], eax
mov ecx, dword [ebx + 0x14]
mov dword [edi + esi*8 + 4], ecx
test eax, eax
jg 0x6483bc
lea eax, [esp + 0x74]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0xa0]
push edx
lea edx, [esp + 0x4c]
push edx
push 0x8d316b
push eax
call fcn.00661f00
mov ecx, dword [edi + esi*8 + 4]
test ecx, ecx
jg 0x648416
xor ecx, ecx
mov edx, dword [edi + esi*8]
cmp ecx, 0x1fffffff
jge 0x648459
test edx, edx
jle 0x648462
cmp edx, 0x1fffffff
jl 0x648432
mov edx, 0x1fffffff
sub ecx, edx
test ecx, ecx
jg 0x64843a
xor ecx, ecx
add ecx, dword [eax + 0xc]
test ecx, ecx
jg 0x648443
xor ecx, ecx
cmp ecx, 0x1fffffff
jl 0x648390
mov ecx, 0x1fffffff
jmp 0x648390
mov ecx, 0x1fffffff
test edx, edx
jg 0x648425
xor edx, edx
cmp edx, 0x1fffffff
jge 0x64842d
jmp 0x648432
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], 1
jmp 0x64839d
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x78]
lea ecx, [eax - 1]
mov dword [esi + 0x78], ecx
cmp eax, 2
jge 0x6484c0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
add eax, 0xc
mov ecx, esi
push str.Reached_maximum_recursion_limit_for_nested_messages.
push 0xa
push dword [ebp + 8]
push eax
call fcn.00643220
mov eax, dword [ebp + 0x10]
mov dword [eax + 0x20], 0
mov dword [eax + 0x40], 0
jmp 0x6499dd
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x24]
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x40], eax
mov edx, dword [esi + 0x24]
mov edi, dword [ebp + 0x14]
mov ecx, edi
call fcn.006451c0
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x20], eax
mov eax, esi
cmp dword [esi + 0x24], 0
jle 0x648522
xor esi, esi
xor edi, edi
nop dword [eax + eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx + 0x20]
add ebx, esi
mov ecx, dword [esp + 0xc]
push dword [ebp + 0x14]
push ebx
push edx
push dword [eax + edi*4 + 4]
call fcn.00647f80
mov eax, dword [ebp + 8]
inc edi
add esi, 0x58
cmp edi, dword [eax + 0x24]
jl 0x6484f0
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov esi, dword [eax + 0x84]
mov dword [ecx + 0x54], esi
mov ecx, edi
mov edx, esi
call fcn.0064c8b0
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x34], eax
mov dword [esp + 0x20], esi
test esi, esi
jle 0x6485bd
xor esi, esi
jmp 0x648574
mov eax, dword [esp + 0x50]
mov dword [edi + 8], eax
movsd xmm0, qword [esp + 0x48]
movsd qword [edi], xmm0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x34]
mov dword [eax + esi*4], edi
inc esi
cmp dword [esp + 0x20], esi
mov edi, dword [ebp + 0x14]
je 0x6485bd
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x8c]
mov ebx, dword [eax + esi*4 + 4]
mov ecx, edi
mov edx, 1
call fcn.00656ac0
mov edi, eax
lea ecx, [esp + 0x48]
push ebx
call fcn.0051f860
test byte [edi], 1
je 0x648550
mov eax, dword [edi + 8]
mov byte [eax], 0
mov dword [edi + 4], 0
test byte [edi], 1
je 0x648550
push dword [edi + 8]
call fcn.0051c570
add esp, 4
jmp 0x648550
mov esi, dword [ebp + 8]
test byte [esi + 8], 2
je 0x6486b2
mov esi, dword [esi + 0x94]
test esi, esi
jne 0x6485da
mov esi, dword [0x8d3314]
mov edi, dword [ebp + 0x10]
push 0x20
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x7c], eax
mov dword [esp + 0x74], 0x21
mov dword [esp + 0x78], 0x1e
movups xmm0, xmmword [0x8d10a6]
movups xmmword [eax + 0xe], xmm0
movups xmm0, xmmword [str.google.protobuf.MessageOptions]
movups xmmword [eax], xmm0
mov byte [eax + 0x1e], 0
mov dword [esp + 0xa0], 7
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
lea ebx, [esp + 0x48]
mov ecx, edi
push ebx
call fcn.00641510
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x64865a
mov dword [eax], 7
add dword [esp + 0x4c], 4
jmp 0x64866b
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x48]
push eax
call fcn.00420d20
mov eax, dword [edi + 8]
add eax, 0xc
lea edx, [esp + 0x74]
mov ecx, dword [esp + 0xc]
push dword [ebp + 0x14]
push edx
push ebx
push edi
push esi
push eax
push eax
call fcn.00661810
mov eax, dword [esp + 0x48]
test eax, eax
je 0x64869c
mov dword [esp + 0x4c], eax
push eax
call fcn.0051c570
add esp, 4
test byte [esp + 0x74], 1
je 0x6486af
push dword [esp + 0x7c]
call fcn.0051c570
add esp, 4
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 8]
add ecx, 0xc
mov dword [esp + 0x208], eax
mov byte [eax], 1
sub esp, 0x14
mov eax, dword [esp + 0x21c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov ecx, dword [esp + 0x20]
call fcn.006454a0
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x6489a9
xor ecx, ecx
jmp 0x64870c
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
jge 0x6489a9
lea edi, [ecx + 1]
cmp edi, eax
mov dword [esp + 0x3c], edi
jge 0x648700
mov edx, ecx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x7c]
mov esi, edx
mov dword [esp + 0x40], edx
mov esi, dword [ecx + edx*4 + 4]
jmp 0x64873b
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x74]
inc edi
cmp edi, eax
jge 0x648700
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x7c]
mov ebx, dword [ecx + edi*4 + 4]
mov edx, dword [esi + 0x14]
cmp edx, dword [ebx + 0x10]
jle 0x648736
mov edx, dword [ebx + 0x14]
cmp edx, dword [esi + 0x10]
jle 0x648736
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
add eax, 0xc
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
mov eax, dword [ecx + eax*4 + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
push 0x50
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], 0x51
mov dword [esp + 0x2c], 0x45
movsd xmm0, qword [0x8d10f4]
movsd qword [eax + 0x3d], xmm0
movups xmm0, xmmword [0x8d10e7]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [0x8d10d7]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x8d10c7]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.Reserved_range__0_to__1_overlaps_with_already_defined_range__2_to__3.]
movups xmmword [eax], xmm0
mov byte [eax + 0x45], 0
lea eax, [esp + 0x50]
push eax
push dword [ebx + 0x10]
call fcn.0062b510
add esp, 8
mov dword [esp + 0x48], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x14]
dec eax
lea ecx, [esp + 0x7c]
push ecx
push eax
call fcn.0062b510
add esp, 8
mov dword [esp + 0x74], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x78], eax
lea eax, [esp + 0xa8]
push eax
push dword [esi + 0x10]
call fcn.0062b510
add esp, 8
mov dword [esp + 0xa0], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0xa4], eax
mov eax, dword [esi + 0x14]
dec eax
lea ecx, [esp + 0xd0]
push ecx
push eax
call fcn.0062b510
add esp, 8
mov dword [esp + 0xc8], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0xcc], eax
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0xffffffff
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0xffffffff
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0xffffffff
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0xffffffff
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0xffffffff
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xffffffff
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x13c]
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x50]
push eax
lea ebx, [esp + 0x11c]
push ebx
call fcn.00784160
add esp, 0x30
mov ecx, dword [esp + 0xc]
push ebx
push 1
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.00643140
test byte [esp + 0xf0], 1
je 0x64898d
push dword [esp + 0xf8]
call fcn.0051c570
add esp, 4
test byte [esp + 0x28], 1
je 0x648730
push dword [esp + 0x30]
call fcn.0051c570
add esp, 4
jmp 0x648730
xorps xmm0, xmm0
movaps xmmword [esp + 0xf0], xmm0
mov dword [esp + 0x100], 0x3f800000
mov eax, dword [ebp + 8]
cmp dword [eax + 0x84], 0
jle 0x648c11
xor esi, esi
lea edi, [esp + 0xf0]
jmp 0x6489f9
mov ecx, edi
push ebx
push ebx
call fcn.00661010
mov eax, dword [ebp + 8]
inc esi
cmp esi, dword [eax + 0x84]
jge 0x648c11
mov eax, dword [eax + 0x8c]
mov ebx, dword [eax + esi*4 + 4]
mov ecx, edi
push ebx
call fcn.00661cb0
test eax, eax
je 0x6489e0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
push 0x30
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x31
mov dword [esp + 0x14], 0x2b
movups xmm0, xmmword [0x8d1118]
movups xmmword [eax + 0x1b], xmm0
movups xmm0, xmmword [0x8d110d]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.Field_name___0__is_reserved_multiple_times.]
movups xmmword [eax], xmm0
mov byte [eax + 0x2b], 0
test byte [ebx], 1
je 0x648a80
mov eax, dword [ebx + 8]
jmp 0x648a83
lea eax, [ebx + 1]
mov dword [esp + 0x48], eax
movzx eax, byte [ebx]
test al, 1
je 0x648aa0
mov eax, dword [ebx + 4]
jmp 0x648aa2
shr eax, 1
mov dword [esp + 0x4c], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0xffffffff
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0xffffffff
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0xffffffff
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0xffffffff
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0xffffffff
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0xffffffff
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xffffffff
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x13c]
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x38]
push eax
lea edi, [esp + 0x54]
push edi
call fcn.00784160
add esp, 0x30
mov ecx, dword [esp + 0xc]
push edi
push 0
push dword [ebp + 8]
push ebx
call fcn.00643140
test byte [esp + 0x28], 1
je 0x648be8
push dword [esp + 0x30]
call fcn.0051c570
add esp, 4
test byte [esp + 0x10], 1
mov eax, dword [ebp + 8]
lea edi, [esp + 0xf0]
je 0x6489ec
push dword [esp + 0x18]
call fcn.0051c570
mov eax, dword [ebp + 8]
add esp, 4
jmp 0x6489ec
mov eax, dword [ebp + 0x10]
cmp dword [eax + 4], 0
jle 0x649416
mov ecx, dword [esp + 0xc]
add ecx, 0x3c
mov dword [esp + 0x40], ecx
xor edi, edi
jmp 0x648c3d
inc edi
mov eax, dword [ebp + 0x10]
cmp edi, dword [eax + 4]
jge 0x649416
mov edx, dword [eax + 0x18]
cmp dword [eax + 0x48], 0
mov dword [esp + 0x38], edi
mov dword [esp + 0x44], edx
jle 0x648f40
lea ecx, [edi + edi*2]
shl ecx, 4
add edx, ecx
add edx, 4
xor edi, edi
mov esi, 1
mov dword [esp + 0x20], edx
jmp 0x648c84
mov eax, dword [ebp + 0x10]
mov edx, dword [esp + 0x20]
inc edi
add esi, 3
cmp edi, dword [eax + 0x48]
jge 0x648f40
mov ebx, dword [eax + 0x28]
mov ecx, dword [edx]
cmp dword [ebx + esi*4 - 4], ecx
jg 0x648c77
cmp ecx, dword [ebx + esi*4]
jge 0x648c77
lea eax, [ebp + 0x10]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x74]
push edx
lea edx, [esp + 0x4c]
push edx
push 0x8d316b
push eax
call fcn.00661f00
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x4c]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 0xc]
test edx, edx
mov ecx, 0xffffffff
cmovs edx, ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + edi*4 + 4]
mov dword [esp + 0x24], ecx
cmp edx, 0x1ffffffe
mov ecx, 0x1ffffffe
cmovge edx, ecx
inc edx
mov dword [eax + 0xc], edx
cmp dword [eax + 0x10], 0
jne 0x648cfd
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 1
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + edi*4 + 4]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
push 0x40
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x41
mov dword [esp + 0x14], 0x32
movups xmm0, xmmword [0x8d1149]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x8d1139]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.Extension_range__0_to__1_includes_field___2____3_.]
movups xmmword [eax], xmm0
mov word [eax + 0x30], 0x2e29
mov byte [eax + 0x32], 0
lea eax, [esp + 0x50]
push eax
push dword [ebx + esi*4 - 4]
call fcn.0062b510
add esp, 8
mov dword [esp + 0x48], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + esi*4]
dec eax
lea ecx, [esp + 0x7c]
push ecx
push eax
call fcn.0062b510
add esp, 8
mov dword [esp + 0x74], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov edx, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x78], eax
mov eax, dword [edx + 4]
test byte [eax], 1
je 0x648dcc
mov ecx, dword [eax + 8]
jmp 0x648dcf
lea ecx, [eax + 1]
add dword [esp + 0x24], 0xc
mov dword [esp + 0xa0], ecx
movzx ecx, byte [eax]
test cl, 1
je 0x648de8
mov ecx, dword [eax + 4]
jmp 0x648dea
shr ecx, 1
mov dword [esp + 0xa4], ecx
lea eax, [esp + 0xd0]
push eax
push dword [edx]
call fcn.0062b510
add esp, 8
mov dword [esp + 0xc8], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0xcc], eax
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0xffffffff
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0xffffffff
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0xffffffff
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0xffffffff
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0xffffffff
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xffffffff
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x13c]
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x38]
push eax
lea ebx, [esp + 0x54]
push ebx
call fcn.00784160
add esp, 0x30
mov ecx, dword [esp + 0xc]
push ebx
push 1
push dword [esp + 0x44]
push dword [esp + 0x30]
call fcn.00643140
test byte [esp + 0x28], 1
je 0x648f24
push dword [esp + 0x30]
call fcn.0051c570
add esp, 4
test byte [esp + 0x10], 1
je 0x648c70
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
jmp 0x648c70
cmp dword [eax + 0x50], 0
jle 0x6491f0
mov ecx, dword [esp + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 4
mov edx, dword [esp + 0x44]
lea esi, [edx + ecx]
add esi, 4
xor edi, edi
jmp 0x648f7d
mov eax, dword [ebp + 0x10]
inc edi
cmp edi, dword [eax + 0x50]
jge 0x6491f0
mov ecx, dword [eax + 0x30]
mov edx, dword [esi]
cmp dword [ecx + edi*8], edx
jg 0x648f73
cmp edx, dword [ecx + edi*8 + 4]
jge 0x648f73
lea eax, [ebp + 0x10]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x74]
push edx
lea edx, [esp + 0x4c]
push edx
push 0x8d316b
push eax
call fcn.00661f00
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x7c]
mov edx, dword [eax + 0xc]
test edx, edx
mov ebx, 0xffffffff
cmovs edx, ebx
mov ecx, dword [ecx + edi*4 + 4]
cmp edx, 0x1ffffffe
mov ebx, 0x1ffffffe
cmovge edx, ebx
inc edx
mov dword [eax + 0xc], edx
cmp dword [eax + 0x10], 0
jne 0x648fe6
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 1
mov ebx, dword [esi + 4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x7c]
mov eax, dword [eax + edi*4 + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
push 0x30
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x31
mov dword [esp + 0x14], 0x23
movups xmm0, xmmword [0x8d116c]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.Field___0__uses_reserved_number__1.]
movups xmmword [eax], xmm0
mov dword [eax + 0x1f], 0x2e312420
mov byte [eax + 0x23], 0
mov eax, dword [esi + 4]
test byte [eax], 1
je 0x64905a
mov ecx, dword [eax + 8]
jmp 0x64905d
lea ecx, [eax + 1]
add ebx, 0xc
mov dword [esp + 0x48], ecx
movzx ecx, byte [eax]
test cl, 1
mov dword [esp + 0x20], ebx
je 0x649075
mov ecx, dword [eax + 4]
jmp 0x649077
shr ecx, 1
mov dword [esp + 0x4c], ecx
lea eax, [esp + 0x7c]
push eax
push dword [esi]
call fcn.0062b510
add esp, 8
mov dword [esp + 0x74], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x78], eax
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0xffffffff
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0xffffffff
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0xffffffff
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0xffffffff
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0xffffffff
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0xffffffff
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xffffffff
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x13c]
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x38]
push eax
lea ebx, [esp + 0x54]
push ebx
call fcn.00784160
add esp, 0x30
mov ecx, dword [esp + 0xc]
push ebx
push 1
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.00643140
test byte [esp + 0x28], 1
je 0x6491d1
push dword [esp + 0x30]
call fcn.0051c570
add esp, 4
test byte [esp + 0x10], 1
je 0x648f70
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
jmp 0x648f70
mov edi, dword [esp + 0x38]
lea esi, [edi + edi*2]
shl esi, 4
lea ecx, [esp + 0xf0]
mov ebx, dword [esp + 0x44]
push dword [ebx + esi + 8]
call fcn.00661cb0
test eax, eax
je 0x648c30
add ebx, esi
add ebx, 8
mov esi, dword [ebx]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov edi, dword [eax + edi*4 + 4]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
push 0x20
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x14], 0x1c
movups xmm0, xmmword [0x8d118c]
movups xmmword [eax + 0xc], xmm0
movups xmm0, xmmword [str.Field_name___0__is_reserved.]
movups xmmword [eax], xmm0
mov byte [eax + 0x1c], 0
mov eax, dword [ebx]
test byte [eax], 1
je 0x649290
mov ecx, dword [eax + 8]
jmp 0x649293
lea ecx, [eax + 1]
add esi, 0xc
mov dword [esp + 0x48], ecx
movzx ecx, byte [eax]
test cl, 1
je 0x6492b0
mov ecx, dword [eax + 4]
jmp 0x6492b2
shr ecx, 1
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0xffffffff
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0xffffffff
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0xffffffff
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0xffffffff
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0xffffffff
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0xffffffff
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xffffffff
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x13c]
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x38]
push eax
lea ebx, [esp + 0x54]
push ebx
call fcn.00784160
add esp, 0x30
mov ecx, dword [esp + 0xc]
push ebx
push 0
push edi
push esi
call fcn.00643140
test byte [esp + 0x28], 1
je 0x6493f6
push dword [esp + 0x30]
call fcn.0051c570
add esp, 4
test byte [esp + 0x10], 1
mov edi, dword [esp + 0x38]
je 0x648c30
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
jmp 0x648c30
cmp dword [eax + 0x48], 0
jle 0x6499af
xor edx, edx
mov dword [esp + 0x9c], 0x10
jmp 0x649445
add dword [esp + 0x9c], 0xc
mov edx, dword [esp + 0x44]
cmp edx, dword [eax + 0x48]
jge 0x6499af
mov ecx, dword [eax + 0x28]
lea esi, [edx + edx*2]
lea ebx, [ecx + esi*4]
cmp dword [eax + 0x50], 0
mov dword [esp + 0x40], edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x204], ecx
mov dword [esp + 0x200], esi
jle 0x6496f0
lea ecx, [ecx + esi*4]
add ecx, 4
mov dword [esp + 0x20], ecx
xor edi, edi
jmp 0x649495
mov eax, dword [ebp + 0x10]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x24]
inc edi
cmp edi, dword [eax + 0x50]
jge 0x6496f0
mov esi, dword [eax + 0x30]
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
cmp ecx, dword [esi + edi*8]
jle 0x64948b
mov ecx, dword [esi + edi*8 + 4]
cmp ecx, dword [ebx]
jle 0x64948b
mov eax, dword [eax + 8]
add eax, 0xc
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + edx*4 + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
push 0x40
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x41
mov dword [esp + 0x14], 0x3f
movups xmm0, xmmword [0x8d11cc]
movups xmmword [eax + 0x2f], xmm0
movups xmm0, xmmword [0x8d11bd]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x8d11ad]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.Extension_range__0_to__1_overlaps_with_reserved_range__2_to__3.]
movups xmmword [eax], xmm0
mov byte [eax + 0x3f], 0
lea eax, [esp + 0x50]
push eax
push dword [ebx]
call fcn.0062b510
add esp, 8
mov dword [esp + 0x48], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
dec eax
lea ecx, [esp + 0x7c]
push ecx
push eax
call fcn.0062b510
add esp, 8
mov dword [esp + 0x74], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x78], eax
lea eax, [esp + 0xa8]
push eax
push dword [esi + edi*8]
call fcn.0062b510
add esp, 8
mov dword [esp + 0xa0], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0xa4], eax
mov eax, dword [esi + edi*8 + 4]
dec eax
lea ecx, [esp + 0xd0]
push ecx
push eax
call fcn.0062b510
add esp, 8
mov dword [esp + 0xc8], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0xcc], eax
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0xffffffff
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0xffffffff
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0xffffffff
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0xffffffff
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0xffffffff
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xffffffff
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x13c]
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x38]
push eax
lea esi, [esp + 0x54]
push esi
call fcn.00784160
add esp, 0x30
mov ecx, dword [esp + 0xc]
push esi
push 1
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.00643140
test byte [esp + 0x28], 1
je 0x6496cf
push dword [esp + 0x30]
call fcn.0051c570
add esp, 4
test byte [esp + 0x10], 1
je 0x649480
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
jmp 0x649480
lea ebx, [edx + 1]
cmp ebx, dword [eax + 0x48]
mov dword [esp + 0x44], ebx
jge 0x649430
mov ecx, dword [esp + 0x204]
mov esi, dword [esp + 0x200]
lea ecx, [ecx + esi*4]
add ecx, 4
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 0x9c]
jmp 0x649740
mov eax, dword [ebp + 0x10]
inc ebx
add esi, 0xc
cmp ebx, dword [eax + 0x48]
jge 0x649430
mov edi, dword [eax + 0x28]
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
cmp ecx, dword [edi + esi - 4]
jle 0x649733
mov ecx, dword [edi + esi]
mov edx, dword [esp + 0x24]
cmp ecx, dword [edx]
jle 0x649733
mov eax, dword [eax + 8]
add eax, 0xc
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x4c]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + ecx*4 + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
push 0x50
call fcn.0051c3d0
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x51
mov dword [esp + 0x14], 0x46
movsd xmm0, qword [0x8d121b]
movsd qword [eax + 0x3e], xmm0
movups xmm0, xmmword [0x8d120d]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [0x8d11fd]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x8d11ed]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.Extension_range__0_to__1_overlaps_with_already_defined_range__2_to__3.]
movups xmmword [eax], xmm0
mov byte [eax + 0x46], 0
lea eax, [esp + 0x50]
push eax
push dword [edi + esi - 4]
call fcn.0062b510
add esp, 8
mov dword [esp + 0x48], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x4c], eax
mov eax, dword [edi + esi]
dec eax
lea ecx, [esp + 0x7c]
push ecx
push eax
call fcn.0062b510
add esp, 8
mov dword [esp + 0x74], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0x78], eax
lea eax, [esp + 0xa8]
push eax
mov eax, dword [esp + 0x28]
push dword [eax]
call fcn.0062b510
add esp, 8
mov dword [esp + 0xa0], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
dec eax
lea ecx, [esp + 0xd0]
push ecx
push eax
call fcn.0062b510
add esp, 8
mov dword [esp + 0xc8], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov dword [esp + 0xcc], eax
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0xffffffff
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0xffffffff
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0xffffffff
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0xffffffff
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0xffffffff
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xffffffff
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x13c]
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x1ec]
push eax
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x38]
push eax
lea edi, [esp + 0x54]
push edi
call fcn.00784160
add esp, 0x30
mov ecx, dword [esp + 0xc]
push edi
push 1
push dword [esp + 0x40]
push dword [esp + 0x48]
call fcn.00643140
test byte [esp + 0x28], 1
je 0x649993
push dword [esp + 0x30]
call fcn.0051c570
add esp, 4
test byte [esp + 0x10], 1
je 0x649730
push dword [esp + 0x18]
call fcn.0051c570
add esp, 4
jmp 0x649730
mov esi, dword [esp + 0xf8]
test esi, esi
jne 0x6499ff
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xf0], 0
test eax, eax
je 0x6499d9
push eax
call fcn.0051c570
add esp, 4
mov esi, dword [esp + 0xc]
inc dword [esi + 0x78]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
push esi
call fcn.0051c570
add esp, 4
mov esi, edi
test edi, edi
je 0x6499ba
mov edi, dword [esi]
test byte [esi + 8], 1
je 0x6499f0
push dword [esi + 0x10]
call fcn.0051c570
add esp, 4
jmp 0x6499f0