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

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, ecx
push esi
push ebx
sub esp, 0x17c
mov dword [esp], 0xe4
call fcn.00586e90
sub esp, 4
test al, al
je 0x5771f0
lea eax, [ebp - 0x88]
mov ecx, edi
mov dword [esp], eax
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
call fcn.00576800
sub esp, 4
test al, al
mov byte [ebp - 0x15a], al
jne 0x577510
mov eax, dword [edi + 0xec]
mov edx, dword [eax]
mov edx, dword [edx + 0x70]
mov dword [esp + 0x10], 0x6e8f02
mov dword [esp + 0xc], str.namespace_name
lea ecx, [edi + 8]
mov dword [esp + 8], str.Expected
mov dword [esp + 4], ecx
mov dword [esp], eax
call edx
jmp 0x5774f8
mov dword [esp], 0xa
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0x3f800000
mov dword [ebp - 0xfc], 0
call fcn.005e86a0
sub esp, 4
cmp eax, 0x3fffffff
mov dword [ebp - 0x10c], eax
ja 0x578556
lea esi, [eax*4]
mov dword [esp], esi
call fcn.006540e0
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
mov ebx, eax
call sub.msvcrt.dll_memset
lea eax, [ebp - 0x110]
mov ecx, edi
mov dword [esp], eax
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0xf8], 0
call fcn.0057fa20
mov ecx, edi
sub esp, 4
mov dword [esp], 0xe2
call fcn.00586e90
mov ecx, edi
and byte [ebp - 0xe4], 0xc0
and byte [ebp - 0xee], 0xf0
and byte [ebp - 0xec], 0xfe
and byte [ebp - 0x94], 0x80
or byte [ebp - 0x8c], 0xf
and word [ebp - 0xe2], 0xfe3f
sub esp, 4
and word [ebp - 0xe4], 0xc03f
and byte [ebp - 0xdf], 0x80
and byte [ebp - 0xdc], 0x80
mov byte [ebp - 0x15b], al
movzx eax, byte [ebp - 0x90]
mov dword [ebp - 0xf4], 0x6f2308
mov byte [ebp - 0xf0], 0
mov byte [ebp - 0xef], 1
and eax, 0xfffffff8
or eax, 4
mov byte [ebp - 0x90], al
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0
mov byte [ebp - 0x98], 0
mov byte [ebp - 0x97], 0
mov dword [ebp - 0xe8], 0
mov byte [ebp - 0xe0], 0
mov dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0xd4], 0xffffffff
movzx eax, word [ebp - 0xca]
movzx edx, word [ebp - 0xb6]
or byte [ebp - 0xc0], 0x7f
or dword [ebp - 0xc8], 0x7fff8000
and ax, 0xf80f
or ax, 0x3f0
or dx, 0x1fe0
mov word [ebp - 0xca], ax
movzx eax, byte [ebp - 0xcc]
mov word [ebp - 0xb6], dx
shr dx, 8
or edx, 0xffffffe0
or word [ebp - 0xd0], 0xfff
and eax, 0xfffffff8
or eax, 4
mov byte [ebp - 0xcc], al
mov eax, dword [ebp - 0xc4]
or word [ebp - 0xc0], 0x780
or dword [ebp - 0xbc], 0x1ff80
or word [ebp - 0xb8], 0x1ff8
or eax, 0x7f8000
mov dword [ebp - 0xc4], eax
shr eax, 0x18
or eax, 0xffffff80
mov byte [ebp - 0xc1], al
and byte [ebp - 0xb1], 0x1f
and byte [ebp - 0xb0], 0xe0
and dword [ebp - 0xe4], 0xffc03fff
mov byte [ebp - 0xb5], dl
mov byte [ebp - 0xaf], 0
mov byte [ebp - 0xae], 0
mov byte [ebp - 0xad], 0
mov dword [ebp - 0xac], 0xfffff800
mov byte [ebp - 0xb4], 0xff
mov dword [esp], 0xe0
call fcn.00586e80
sub esp, 4
test al, al
je 0x577581
mov eax, dword [ebp + 8]
mov ecx, edi
mov dword [esp + 4], eax
lea eax, [ebp - 0xf4]
mov dword [esp], eax
call fcn.00580270
sub esp, 8
mov byte [ebp - 0x15a], al
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0xf4], 0x6f2308
test eax, eax
jne 0x5774a5
jmp 0x5774b3
mov eax, ebx
mov ebx, dword [eax]
mov dword [esp], eax
call fcn.00654030
test ebx, ebx
jne 0x5774a3
mov eax, dword [ebp - 0x10c]
mov dword [esp + 4], 0
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x110]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x108], 0
mov dword [esp], eax
call fcn.00654030
movzx eax, byte [ebp - 0x15a]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov eax, dword [ebp - 0x70]
mov ecx, dword [edi + 0xec]
mov dword [esp], eax
call fcn.0055aee0
mov ecx, edi
sub esp, 4
mov dword [esp], 0x112
call fcn.00586e90
sub esp, 4
test al, al
mov byte [ebp - 0x15a], al
je 0x577956
mov eax, dword [ebp + 8]
mov ecx, edi
mov dword [esp], eax
call fcn.00578560
sub esp, 4
test al, al
mov byte [ebp - 0x15a], al
jne 0x578260
mov eax, dword [edi + 0xec]
mov edx, dword [eax]
mov edx, dword [edx + 0x70]
mov dword [esp + 0x10], 0x6e8f02
mov dword [esp + 0xc], str.declaration_list
jmp 0x5771d6
mov dword [esp], 0xe1
mov ecx, edi
call fcn.00586e80
sub esp, 4
test al, al
mov byte [ebp - 0x15a], al
jne 0x57746d
mov eax, dword [ebp + 8]
mov ecx, edi
mov dword [esp + 4], eax
lea eax, [ebp - 0xf4]
mov dword [esp], eax
call fcn.00580270
test al, al
push edx
push edx
je 0x57748d
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x16c], 0
mov byte [ebp - 0x159], 0
jmp 0x577902
mov dword [esp], 0x10e
mov ecx, edi
call fcn.00586e80
sub esp, 4
test al, al
jne 0x577976
movzx eax, byte [ebp - 0xe4]
test al, 0x3f
jne 0x577653
mov edx, dword [edi + 0xec]
mov ecx, dword [edx + 0x58]
mov edx, dword [ecx + 4]
sub edx, dword [ecx]
cmp edx, 0x13
jg 0x577653
and eax, 0xffffffc0
or eax, 5
mov byte [ebp - 0xe4], al
movzx eax, byte [ebp - 0xf0]
mov ecx, edi
mov dword [ebp - 0x88], 0x6f2308
mov byte [ebp - 0x84], al
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0xb8]
movzx edx, byte [ebp - 0xee]
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0xb4]
and edx, 0xf
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x40], eax
movzx eax, byte [ebp - 0xef]
mov byte [ebp - 0x83], al
movzx eax, byte [ebp - 0x82]
and eax, 0xfffffff0
or eax, edx
movzx edx, byte [ebp - 0xec]
mov byte [ebp - 0x82], al
movzx eax, byte [ebp - 0x80]
and edx, 1
and eax, 0xfffffffe
or eax, edx
mov byte [ebp - 0x80], al
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x150]
mov dword [esp], eax
call fcn.0057fea0
mov ebx, dword [ebp - 0xa8]
sub esp, 4
test ebx, ebx
jne 0x577eb0
mov eax, dword [ebp - 0x150]
test eax, eax
je 0x577f9e
mov ecx, dword [edi + 0xec]
lea ebx, [ebp - 0x88]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00565f20
sub esp, 8
cmp byte [ebp - 0x84], 0xc
je 0x577fb0
lea eax, [ebp - 0x7c]
mov ecx, edi
mov dword [esp], eax
call fcn.0057e480
mov ecx, edi
mov dword [ebp - 0x14c], 0
sub esp, 4
mov dword [esp], 0x103
call fcn.00586e90
sub esp, 4
test al, al
je 0x577839
cmp byte [ebp - 0x15b], 0
jne 0x577fc5
lea eax, [ebp - 0x14c]
mov ecx, edi
mov dword [esp], eax
call fcn.0057eaa0
sub esp, 4
test al, al
je 0x578407
movzx eax, byte [ebp - 0x84]
cmp eax, 0xf
je 0x5778d8
mov ecx, dword [edi + 0xec]
mov ebx, dword [ecx + 0x27c]
test ebx, ebx
jne 0x5778d8
cmp byte [ebp - 0x15b], 0
jne 0x578000
cmp eax, 0xe
je 0x578067
movzx eax, byte [ebp - 0x78]
lea ebx, [ebp - 0x88]
and eax, 0x3f
cmp al, 5
je 0x5781a7
mov eax, dword [ebp - 0x14c]
lea esi, [ebp - 0x148]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x154]
mov dword [esp + 4], eax
lea eax, [ebp - 0x148]
mov dword [esp], eax
call fcn.0056de20
mov ecx, dword [edi + 0xf0]
sub esp, 0x10
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x16c]
mov dword [esp + 8], esi
mov dword [esp], eax
call fcn.0051a8e0
sub esp, 0xc
mov dword [ebp - 0x16c], eax
mov dword [esp], 0x115
mov ecx, edi
call fcn.00586e90
movzx esi, byte [ebp - 0x159]
sub esp, 4
test al, al
mov eax, 1
cmovne esi, eax
mov eax, esi
mov byte [ebp - 0x159], al
lea eax, [ebp - 0x148]
mov ecx, edi
mov dword [esp], eax
call fcn.00576800
sub esp, 4
test al, al
je 0x5782b0
mov ecx, dword [edi + 0xec]
mov eax, dword [ebp - 0x130]
mov edx, dword [ecx + 0x58]
mov dword [ebp - 0x154], eax
mov eax, dword [edx + 4]
sub eax, dword [edx]
cmp eax, 0x13
jg 0x577610
lea eax, [ebp - 0x154]
mov dword [esp], eax
call fcn.00551780
sub esp, 4
jmp 0x577610
mov eax, dword [edi + 0xec]
mov edx, dword [eax]
mov edx, dword [edx + 0x70]
mov dword [esp + 0x10], 0x6e8f02
mov dword [esp + 0xc], 0x6e90f8
jmp 0x5771d6
mov ecx, dword [edi + 0xec]
lea eax, [ebp - 0x154]
mov dword [esp], eax
call fcn.0054d590
sub esp, 4
call fcn.004cb890
mov dword [esp], 0xac
mov ecx, eax
call fcn.004cba30
mov esi, dword [ebp - 0x154]
sub esp, 4
mov ebx, eax
mov dword [eax + 4], esi
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov byte [eax + 0x14], 1
mov dword [eax], 0x6f24e8
call fcn.004cb890
and byte [ebx + 0x38], 0xc0
and byte [ebx + 0x2e], 0xf0
and byte [ebx + 0x30], 0xfe
and byte [ebx + 0x88], 0x80
or byte [ebx + 0x90], 0xf
and word [ebx + 0x3a], 0xfe3f
and word [ebx + 0x38], 0xc03f
and byte [ebx + 0x3d], 0x80
mov dword [ebx + 0x18], eax
movzx eax, byte [ebx + 0x8c]
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
and eax, 0xfffffff8
or eax, 4
mov byte [ebx + 0x8c], al
mov dword [ebx + 0x28], 0x6f2308
mov byte [ebx + 0x2c], 0
mov byte [ebx + 0x2d], 1
mov dword [ebx + 0x74], 0
mov dword [ebx + 0x78], 0
mov dword [ebx + 0x7c], 0
mov dword [ebx + 0x80], 0
mov byte [ebx + 0x84], 0
mov byte [ebx + 0x85], 0
mov dword [ebx + 0x34], 0
mov byte [ebx + 0x3c], 0
and byte [ebx + 0x40], 0x80
movzx eax, word [ebx + 0x52]
movzx edx, word [ebx + 0x66]
or byte [ebx + 0x5c], 0x7f
or dword [ebx + 0x54], 0x7fff8000
and ax, 0xf80f
or ax, 0x3f0
or dx, 0x1fe0
mov word [ebx + 0x52], ax
movzx eax, byte [ebx + 0x50]
mov word [ebx + 0x66], dx
shr dx, 8
or edx, 0xffffffe0
or word [ebx + 0x4c], 0xfff
and eax, 0xfffffff8
or eax, 4
mov byte [ebx + 0x50], al
mov eax, dword [ebx + 0x58]
or word [ebx + 0x5c], 0x780
or dword [ebx + 0x60], 0x1ff80
or word [ebx + 0x64], 0x1ff8
or eax, 0x7f8000
mov dword [ebx + 0x58], eax
shr eax, 0x18
or eax, 0xffffff80
mov byte [ebx + 0x5b], al
lea eax, [ebx + 0x98]
and byte [ebx + 0x6b], 0x1f
and byte [ebx + 0x6c], 0xe0
mov byte [ebx + 0x67], dl
mov dword [ebx + 0x44], 0xffffffff
mov dword [ebx + 0x48], 0xffffffff
mov byte [ebx + 0x6d], 0
mov byte [ebx + 0x6e], 0
mov byte [ebx + 0x6f], 0
mov dword [ebx + 0x70], 0xfffff800
mov byte [ebx + 0x68], 0xff
and dword [ebx + 0x38], 0xffc03fff
mov edx, dword [esi + 4]
mov dword [ebp - 0x168], eax
mov eax, dword [esi]
mov ecx, dword [edx - 4]
mov dword [ebp - 0x160], eax
test ecx, ecx
js 0x577de5
lock add dword [edx - 4], 1
mov esi, edx
mov ecx, dword [esi - 0xc]
mov eax, dword [ebp - 0x160]
mov dword [ebx + 0x9c], esi
cmp ecx, 0x3ffffffc
mov dword [ebx + 0x98], eax
je 0x57854a
lea eax, [ecx + 1]
cmp eax, dword [esi - 8]
ja 0x577b64
mov edx, dword [esi - 4]
test edx, edx
jle 0x577b8a
mov ecx, dword [ebp - 0x168]
mov dword [esp], eax
mov dword [ebp - 0x160], eax
call fcn.005f4880
mov esi, dword [ebx + 0x9c]
mov eax, dword [ebp - 0x160]
mov ecx, dword [esi - 0xc]
sub esp, 4
mov byte [esi + ecx], 0x28
mov edx, dword [ebx + 0x9c]
lea ecx, [ebp - 0xf4]
mov dword [edx - 4], 0
mov dword [edx - 0xc], eax
mov byte [edx + eax], 0
movzx eax, byte [ebp - 0xf0]
mov dword [ebx + 0xa0], 0
mov byte [ebx + 0xa4], 0
mov byte [ebx + 0xa5], 0
mov byte [ebx + 0x2c], al
mov eax, dword [ebp - 0x98]
mov byte [ebx + 0xa6], 0
mov byte [ebx + 0xa7], 0
mov dword [ebx + 0xa8], 0
mov dword [ebx + 0x84], eax
mov eax, dword [ebp - 0x94]
mov dword [ebx + 0x88], eax
mov eax, dword [ebp - 0x90]
mov dword [ebx + 0x8c], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebx + 0x90], eax
mov eax, dword [ebp - 0xe8]
mov dword [ebx + 0x34], eax
mov eax, dword [ebp - 0xe4]
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebx + 0x44], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebx + 0x4c], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebx + 0x50], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebx + 0x54], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebx + 0x58], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebx + 0x5c], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebx + 0x60], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 0x64], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebx + 0x68], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebp - 0xac]
mov dword [ebx + 0x70], eax
movzx eax, byte [ebx + 0x2d]
movzx edx, byte [ebp - 0xef]
and eax, 0xfffffff0
and edx, 0xf
or eax, edx
mov byte [ebx + 0x2d], al
movzx edx, byte [ebp - 0xef]
and eax, 0xf
and edx, 0xfffffff0
or eax, edx
mov byte [ebx + 0x2d], al
movzx eax, byte [ebx + 0x2e]
movzx edx, byte [ebp - 0xee]
and eax, 0xfffffff0
and edx, 0xf
or eax, edx
mov byte [ebx + 0x2e], al
movzx eax, byte [ebx + 0x30]
movzx edx, byte [ebp - 0xec]
and eax, 0xfffffffe
and edx, 1
or eax, edx
mov byte [ebx + 0x30], al
mov eax, dword [ebp - 0xa8]
mov dword [ebx + 0x74], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebx + 0x78], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebx + 0x7c], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x80], eax
call fcn.005cdf10
mov ecx, edi
mov dword [ebp - 0x114], ebx
movzx eax, word [eax + 4]
shr ax, 6
movzx eax, al
mov dword [ebx + 0x94], eax
mov dword [esp], ebx
call fcn.00585c50
sub esp, 4
test al, al
je 0x578489
mov ecx, dword [ebp - 0x114]
mov eax, dword [ecx]
call dword [eax + 0x34]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x2c]
mov ecx, edi
mov dword [esp], eax
call fcn.0057e480
mov eax, dword [edi + 8]
mov ecx, edi
mov dword [ebp - 0x124], eax
mov eax, dword [edi + 0xc]
sub esp, 4
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x11c], eax
mov eax, dword [edi + 0x14]
mov dword [esp], 0x112
mov dword [ebp - 0x118], eax
call fcn.00586e80
sub esp, 4
test al, al
jne 0x578427
cmp byte [ebp - 0x15b], 0
jne 0x578030
mov eax, dword [ebp - 0x114]
mov ecx, dword [edi + 0xec]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
lea eax, [ebp - 0x124]
mov dword [esp], eax
call fcn.005529f0
sub esp, 0xc
jmp 0x5778d8
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
cmp esi, 0x3ffffffc
ja 0x57853e
cmp esi, eax
jbe 0x577e03
lea ecx, [eax + eax]
cmp esi, ecx
cmovb esi, ecx
lea ecx, [esi + 0x1d]
cmp ecx, 0x1000
jbe 0x577e2d
cmp eax, esi
jae 0x577e2d
lea eax, [esi + 0x1000]
and ecx, 0xfff
sub eax, ecx
mov esi, 0x3ffffffc
cmp eax, 0x3ffffffc
cmovbe esi, eax
mov ecx, dword [ebp - 0x160]
lea eax, [esi + 0xd]
mov dword [esp], eax
mov dword [ebp - 0x164], edx
call fcn.004cba30
mov edx, dword [ebp - 0x164]
mov ecx, eax
sub esp, 4
mov dword [eax + 4], esi
lea esi, [ecx + 0xc]
mov dword [eax + 8], 0
mov eax, dword [edx - 0xc]
test eax, eax
je 0x577e97
cmp eax, 1
je 0x5780c0
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [ebp - 0x170], ecx
mov dword [ebp - 0x164], edx
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x170]
mov eax, dword [edx - 0xc]
mov dword [ecx + 8], 0
mov dword [ecx], eax
mov byte [esi + eax], 0
jmp 0x577b34
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
mov dword [ebp - 0x168], eax
jne 0x5777ac
movzx eax, byte [ebp - 0xe4]
and eax, 0x3f
cmp al, 6
je 0x5777ac
call fcn.004cb890
mov dword [esp], 0xc
mov ecx, eax
call fcn.004cba30
mov dword [eax], 0x6f1f98
mov edx, eax
sub esp, 4
mov dword [eax + 4], 0
mov dword [eax + 8], 1
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx + 8]
mov dword [edx + 8], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x5782a0
mov esi, dword [edx + 4]
mov dword [ebp - 0x164], eax
test esi, esi
je 0x5783b6
cmp eax, esi
je 0x5777ac
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov edx, dword [esi + 4]
mov dword [ebp - 0x170], eax
sub eax, ebx
mov dword [ebp - 0x160], eax
mov eax, dword [esi + 0xc]
sar dword [ebp - 0x160], 3
sub eax, edx
sar eax, 3
cmp dword [ebp - 0x160], eax
ja 0x578132
mov eax, dword [esi + 8]
mov dword [ebp - 0x168], eax
sub eax, edx
sar eax, 3
cmp dword [ebp - 0x160], eax
ja 0x5780d0
mov eax, dword [ebp - 0x160]
test eax, eax
jne 0x578230
mov eax, edx
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x150]
test eax, eax
jne 0x5777ba
mov esi, dword [ebp - 0x3c]
test esi, esi
jne 0x5777ba
jmp 0x5777d5
mov ecx, edi
call fcn.00576af0
test al, al
jne 0x5777e2
nop
jmp 0x57748d
mov eax, dword [edi + 0xec]
lea esi, [ebp - 0x148]
mov edx, dword [eax]
mov edx, dword [edx + 0x70]
mov dword [esp + 0x10], 0x6e8f02
mov dword [esp + 0xc], str.typedef
mov dword [esp + 8], str.cant_have_an_initializer
mov dword [esp + 4], esi
mov dword [esp], eax
call edx
jmp 0x57781e
mov eax, dword [ebp - 0x154]
lea ebx, [ebp - 0x88]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
lea eax, [ebp - 0x148]
mov dword [esp], eax
call fcn.005532c0
sub esp, 0xc
jmp 0x5778d8
mov eax, dword [edi + 0xec]
lea esi, [ebp - 0x148]
mov edx, dword [eax]
mov edx, dword [edx + 0x70]
mov dword [esp + 0x10], 0x6e8f02
mov dword [esp + 0xc], 0x6e90f8
mov dword [esp + 8], str.function_typedefs_not_implemented
mov dword [esp + 4], esi
mov dword [esp], eax
call edx
jmp 0x577db7
mov eax, dword [ebp - 0x3c]
lea ebx, [ebp - 0x88]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x154]
mov dword [esp + 8], eax
lea eax, [ebp - 0x148]
mov dword [esp], eax
call fcn.00553880
mov eax, dword [ebp - 0x154]
mov ecx, dword [edi + 0xec]
sub esp, 0x10
mov dword [esp + 8], eax
lea eax, [ebp - 0x148]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00574f90
sub esp, 0xc
jmp 0x5778d8
movzx eax, byte [edx]
mov byte [ecx + 0xc], al
mov eax, dword [edx - 0xc]
jmp 0x577e97
test eax, eax
lea ecx, [ebx + eax*8]
jne 0x5781f0
mov ebx, edx
mov eax, dword [ebp - 0x170]
mov edx, dword [ebp - 0x168]
cmp eax, ecx
je 0x578124
mov dword [ebp - 0x164], esi
mov dword [ebp - 0x168], ebx
lea esi, [esi]
test edx, edx
je 0x57810e
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [edx], ebx
mov dword [edx + 4], esi
add ecx, 8
add edx, 8
cmp eax, ecx
jne 0x578100
mov esi, dword [ebp - 0x164]
mov ebx, dword [ebp - 0x168]
mov eax, dword [ebp - 0x160]
lea eax, [ebx + eax*8]
jmp 0x577f8d
mov edx, dword [ebp - 0x160]
xor eax, eax
test edx, edx
je 0x578156
mov ecx, dword [esi]
mov eax, edx
shl eax, 3
mov dword [esp], eax
mov dword [ebp - 0x168], eax
call fcn.004cba30
sub esp, 4
cmp ebx, dword [ebp - 0x170]
mov edx, eax
je 0x578196
mov ecx, dword [ebp - 0x170]
mov dword [ebp - 0x160], esi
mov dword [ebp - 0x164], edi
test edx, edx
je 0x578180
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
mov dword [edx], esi
mov dword [edx + 4], edi
add ebx, 8
add edx, 8
cmp ecx, ebx
jne 0x578172
mov esi, dword [ebp - 0x160]
mov edi, dword [ebp - 0x164]
mov dword [esi + 4], eax
add eax, dword [ebp - 0x168]
mov dword [esi + 0xc], eax
jmp 0x577f8d
mov ecx, ebx
call fcn.00577110
mov ecx, dword [edi + 0xec]
test al, al
jne 0x577884
mov eax, dword [ecx]
lea esi, [ebp - 0x148]
mov edx, dword [ebp - 0x154]
mov eax, dword [eax + 0xbc]
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov dword [esp], esi
call eax
sub esp, 0x10
jmp 0x5778d8
shl eax, 3
mov dword [esp + 4], ebx
mov dword [esp], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memmove
mov eax, dword [esi + 8]
mov ebx, dword [esi + 4]
mov edx, dword [ebp - 0x164]
mov ecx, eax
mov dword [ebp - 0x164], ecx
sub ecx, ebx
mov eax, dword [edx + 8]
and ecx, 0xfffffff8
add ecx, dword [edx + 4]
mov edx, dword [ebp - 0x164]
jmp 0x5780e9
mov ecx, dword [ebp - 0x160]
mov dword [esp + 4], ebx
mov dword [esp], edx
shl ecx, 3
mov dword [esp + 8], ecx
mov dword [ebp - 0x160], ecx
call sub.msvcrt.dll_memmove
mov ecx, dword [ebp - 0x160]
mov eax, dword [esi + 4]
add eax, ecx
jmp 0x577f8d
mov dword [esp], 0x113
mov ecx, edi
call fcn.00586e90
sub esp, 4
test al, al
mov byte [ebp - 0x15a], al
jne 0x578396
mov eax, dword [edi + 0xec]
mov edx, dword [eax]
mov edx, dword [edx + 0x70]
mov dword [esp + 0x10], 0x6e8f02
mov dword [esp + 0xc], 0x6e910b
jmp 0x5771d6
mov dword [edx + 4], 0
jmp 0x5777ac
mov ecx, dword [ebp - 0x16c]
test ecx, ecx
je 0x5782ce
mov eax, dword [ecx]
mov eax, dword [eax + 0xa8]
mov dword [esp], 1
call eax
sub esp, 4
mov eax, dword [ebp + 8]
mov eax, dword [eax]
test eax, eax
je 0x5783a6
mov esi, dword [ebp - 0x16c]
mov ecx, dword [edi + 0xf0]
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0051a6f0
mov esi, dword [ebp + 8]
sub esp, 8
mov dword [esi], eax
mov dword [esp], 0x118
mov ecx, edi
call fcn.00586e90
sub esp, 4
test al, al
mov byte [ebp - 0x15a], al
jne 0x57748d
mov ecx, edi
call fcn.00586e70
cmp eax, 0x103
je 0x5784c4
mov ecx, edi
call fcn.00586e70
cmp eax, 0x110
je 0x5784c4
mov ecx, edi
call fcn.00586e70
cmp eax, 0x114
je 0x5784c4
mov ecx, edi
call fcn.00586e70
cmp eax, 0x115
je 0x5784c4
mov eax, dword [edi + 0xec]
mov edx, dword [eax]
mov edx, dword [edx + 0x70]
mov dword [esp + 0x10], 0x6e8f02
mov dword [esp + 0xc], 0x6e91c8
lea ecx, [edi + 8]
mov dword [esp + 8], str.Expected
mov dword [esp + 4], ecx
mov dword [esp], eax
call edx
jmp 0x57748d
mov ecx, dword [edi + 0xec]
call fcn.0054c130
jmp 0x5774f8
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x16c]
mov dword [eax], esi
jmp 0x5782fb
mov dword [ebp - 0x160], edx
call fcn.004cb890
mov dword [esp], 0x10
mov ecx, eax
call fcn.004cba30
sub esp, 4
mov esi, eax
call fcn.004cb890
mov edx, dword [ebp - 0x160]
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi], eax
mov dword [edx + 4], esi
mov eax, dword [ebx + 4]
mov dword [ebp - 0x164], eax
jmp 0x577f29
mov eax, dword [edi + 0xec]
mov edx, dword [eax]
mov edx, dword [edx + 0x70]
mov dword [esp + 0x10], 0x6e8f02
mov dword [esp + 0xc], str.initializer
jmp 0x57837d
cmp byte [ebp - 0x159], 0
jne 0x578507
cmp byte [ebp - 0x15b], 0
jne 0x5784d0
mov eax, dword [ebp - 0x114]
lea ebx, [ebp - 0x124]
mov ecx, dword [edi + 0xec]
mov dword [esp + 8], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.005529f0
mov eax, dword [ebp + 8]
mov ecx, edi
sub esp, 0xc
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00578b60
sub esp, 8
mov byte [ebp - 0x15a], al
jmp 0x57748d
mov eax, dword [edi + 0xec]
lea ecx, [edi + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0x70]
mov dword [esp + 0x10], 0x6e8f02
mov dword [esp + 0xc], str.function_parameter_list
mov dword [esp + 8], str.Expected
mov dword [esp + 4], ecx
mov dword [esp], eax
call edx
mov byte [ebp - 0x15a], 0
jmp 0x57748d
mov ecx, edi
call fcn.00586da0
jmp 0x57748d
mov eax, dword [edi + 0xec]
lea esi, [ebp - 0x148]
mov edx, dword [eax]
mov edx, dword [edx + 0x70]
mov dword [esp + 0x10], 0x6e8f02
mov dword [esp + 0xc], 0x6e90f8
mov dword [esp + 8], str.function_body_cant_be_in_a_typedef
mov dword [esp + 4], esi
mov dword [esp], eax
call edx
jmp 0x578441
mov eax, dword [edi + 0xec]
lea esi, [ebp - 0x148]
mov edx, dword [eax]
mov edx, dword [edx + 0x70]
mov dword [esp + 0x10], 0x6e8f02
mov dword [esp + 0xc], 0x6e90f8
mov dword [esp + 8], str.function_body_cant_be_in_a_declarator_list
mov dword [esp + 4], esi
mov dword [esp], eax
call edx
jmp 0x578434
mov dword [esp], 0x6e8ec0
call fcn.0064ba80
mov dword [esp], 0x6e8fee
call fcn.0064ba80
call fcn.0064b240
nop
lea esi, [esi]