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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe8
mov esi, ecx
mov ecx, dword [ecx + 0x4f4]
mov eax, dword [ecx]
mov ebp, dword [ecx + 0x3c]
mov edi, dword [ecx + 0x40]
test al, 8
jne 0x4771d7
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xa4]
movups xmmword [eax], xmm0
movsd xmm0, qword [str.as_all_R]
movsd qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0x29514553
mov word [eax + 0x1c], 0x29
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor ebx, ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], 0x411
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov ebx, 0x40
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x18], ebx
movups xmm0, xmmword [esp + 0x90]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call ecx
mov eax, dword [esi + 0x4f4]
mov eax, dword [eax]
test al, 0x40
je 0x477270
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xa4]
movups xmmword [eax], xmm0
movsd xmm0, qword [0x72dc40]
movsd qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0x59454b52
mov word [eax + 0x1c], 0x2929
mov byte [eax + 0x1e], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor ebx, ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], 0x412
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov ebx, 0x40
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x18], ebx
movups xmm0, xmmword [esp + 0x7c]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x1f
call ecx
mov eax, dword [esi + 0x4f4]
mov eax, dword [eax]
test al, 0x10
je 0x4772f1
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xa4]
movups xmmword [eax], xmm0
movsd xmm0, qword [0x72dc40]
movsd qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0x574f4c46
mov word [eax + 0x1c], 0x2929
mov byte [eax + 0x1e], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor ebx, ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], 0x413
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov ebx, 0x40
mov dword [esp + 0x78], ebx
mov dword [esp + 0x18], ebx
movups xmm0, xmmword [esp + 0x68]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x1f
call ecx
test edi, edi
je 0x477316
cmp byte [ebp], 0x23
jne 0x477316
lea eax, [esp + 0xa4]
mov dword [esp], eax
mov ecx, esi
call fcn.0047d7e4
sub esp, 4
mov bl, 1
jmp 0x4776cf
mov eax, dword [esi + 0x4f4]
mov eax, dword [eax]
bt eax, 8
jb 0x47739b
test al, al
jns 0x477641
mov ecx, esi
call fcn.0047dee2
mov bl, 1
test al, al
jne 0x4776cf
xor eax, eax
lea ecx, [esp + 0x2c]
mov dword [ecx], eax
mov dword [ecx + 4], eax
lea eax, [esp + 0x23]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov ecx, esi
call fcn.0047c4d0
sub esp, 8
test al, al
je 0x4775f4
mov eax, dword [esi + 0x4f4]
mov ebx, dword [eax + 0x40]
test ebx, ebx
je 0x477737
mov ebp, dword [eax + 0x3c]
mov al, byte [ebp]
cmp al, 0x20
jne 0x477733
xor edi, edi
cmp byte [ebp + edi], 0x20
jne 0x477715
inc edi
cmp ebx, edi
jne 0x477386
jmp 0x47771a
test al, al
jns 0x47741c
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xa4]
movups xmmword [eax], xmm0
movsd xmm0, qword [0x72dc40]
movsd qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0x4c415652
mov word [eax + 0x1c], 0x2929
mov byte [eax + 0x1e], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor ebx, ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 0x41e
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov ebx, 0x40
mov dword [esp + 0x64], ebx
mov dword [esp + 0x18], ebx
movups xmm0, xmmword [esp + 0x54]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x1f
call ecx
mov ecx, esi
call fcn.0047dee2
mov bl, 1
test al, al
jne 0x4776cf
cmp edi, 2
jae 0x47743b
test edi, edi
jne 0x477469
jmp 0x477623
mov al, byte [ebp]
cmp al, 0x2d
jne 0x47746c
cmp byte [ebp + 1], 0x20
jne 0x477469
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe7f
and ecx, dword [eax]
or ecx, 0x80
mov dword [eax], ecx
mov dword [esp], 2
jmp 0x4776c5
mov al, byte [ebp]
lea ecx, [edi - 1]
movsx edx, al
add edx, 0xffffffd3
cmp al, 0x2d
cmove edx, ecx
test edx, edx
je 0x4775d3
cmp al, 9
je 0x477492
movzx eax, al
cmp eax, 0x20
jne 0x47761a
mov ecx, dword [esi + 0x4f4]
mov eax, dword [ecx + 0x3c]
cmp eax, dword [ecx + 0x2c]
jne 0x47751a
movaps xmm0, xmmword [0x7261f0]
lea eax, [esp + 0xa4]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [str.__at_line_begin_as_all_RMAPFLOWas_none_RSEQIMAPcheck_failed:__trimmed.str___reas_all_S]
movups xmmword [eax + 0x10], xmm0
mov word [eax + 0x20], 0x2929
mov byte [eax + 0x22], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], 0x433
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0x50], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0x40]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x23
call ecx
mov ecx, dword [esi + 0x4f4]
mov eax, dword [ecx + 0x40]
test eax, eax
je 0x477535
mov edx, dword [ecx + 0x3c]
movzx edx, byte [edx]
cmp edx, 9
je 0x4775b2
cmp edx, 0x20
je 0x4775b2
mov ebx, 0x42
mov dword [esp + 8], ebx
lea ebp, [esp + 0xa4]
mov dword [esp], ebp
mov dword [esp + 4], str.check_failed:__m_state__line_contents.rem.begins_with_any_chars__
call fcn.006fb4d0
mov ecx, dword [esi + 0x4e4]
mov eax, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], 0x355
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edx, 0x40
mov dword [esp + 0x3c], edx
mov dword [esp + 0x18], edx
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], ecx
mov dword [esp + 4], ebx
mov bl, 1
mov dword [esp], ebp
call eax
mov ecx, dword [esi + 0x4f4]
mov eax, dword [ecx + 0x40]
test eax, eax
je 0x4776c2
mov edx, dword [ecx + 0x3c]
xor ecx, ecx
movzx edi, byte [edx + ecx]
cmp edi, 9
je 0x4775c9
cmp edi, 0x20
jne 0x4776ba
inc ecx
cmp eax, ecx
jne 0x4775b7
jmp 0x4776c0
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe7f
and ecx, dword [eax]
or ecx, 0x80
mov dword [eax], ecx
mov dword [esp], 1
jmp 0x4776c5
cmp edi, 2
jb 0x477648
mov al, byte [ebp]
cmp al, 0x2d
jne 0x477653
cmp byte [ebp + 1], 0x20
jne 0x477650
mov ecx, esi
call fcn.0047e600
test al, al
jne 0x47745d
jmp 0x4776cf
cmp edi, 3
jae 0x4776dc
call fcn.004abd0c
mov dword [esp + 4], 0x12
mov dword [esp], str.ERROR:_parse_error
mov ecx, esi
call fcn.004857e6
sub esp, 8
xor ebx, ebx
jmp 0x4776cf
test edi, edi
je 0x477976
mov al, byte [ebp]
lea ecx, [edi - 1]
movsx edx, al
add edx, 0xffffffd3
cmp al, 0x2d
cmove edx, ecx
test edx, edx
je 0x477704
cmp al, 0x7b
je 0x47785e
movzx ecx, al
cmp ecx, 0x5b
jne 0x4778a7
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe7f
and ecx, dword [eax]
or ecx, 0x100
mov dword [eax], ecx
xor edi, edi
inc edi
mov dword [esp], edi
mov ecx, esi
call fcn.0047a7fe
sub esp, 4
mov dword [esp], edi
mov ecx, esi
call fcn.0047ad2a
sub esp, 4
mov eax, dword [esi + 0x4f4]
or dword [eax], 0x10
jmp 0x4776c2
cmp ecx, 0xffffffff
cmovne eax, ecx
mov edi, eax
mov dword [esp], edi
mov ecx, esi
call fcn.0047a622
sub esp, 4
mov eax, ebx
add esp, 0xe8
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
mov cl, byte [ebp + eax]
cmp cl, byte [eax + 0x7991f7]
jne 0x477830
inc eax
cmp eax, 3
jne 0x4776de
mov ecx, esi
call fcn.00476476
mov dword [esp], 3
jmp 0x4776c5
mov ecx, esi
call fcn.0047e600
test al, al
jne 0x4775e8
jmp 0x4776cf
cmp edi, 0xffffffff
jne 0x47771c
mov edi, ebx
mov dword [esp], edi
mov ecx, esi
call fcn.0047a622
sub esp, 4
sub ebx, edi
je 0x477737
mov al, byte [ebp + edi]
add ebp, edi
cmp al, 0x23
jne 0x477773
movzx eax, byte [esp + 0x23]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
mov ecx, esi
call fcn.0047d122
sub esp, 0xc
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe7f
and ecx, dword [eax]
or ecx, 0x100
mov dword [eax], ecx
jmp 0x47730f
cmp byte [ebp + ebx - 1], 0x3a
jne 0x47791b
cmp dword [esi + 0x528], 0
je 0x477790
cmp dword [esi + 0x524], 0
jne 0x477797
mov ecx, esi
call fcn.0047e46a
cmp dword [esi + 0x504], 0
mov bl, 1
je 0x4777ab
cmp dword [esi + 0x500], 0
jne 0x4777b2
mov ecx, esi
call fcn.0047e502
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe7f
and ecx, dword [eax]
or ecx, 0x100
mov dword [eax], ecx
mov dword [esp], 0
mov ecx, esi
call fcn.0047a7fe
sub esp, 4
mov dword [esp], 1
mov ecx, esi
call fcn.0047b2fc
sub esp, 4
movzx eax, byte [esp + 0x23]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
mov ecx, esi
call fcn.0047d8c8
sub esp, 0xc
cmp dword [esi + 0x528], 0
je 0x47793b
cmp dword [esi + 0x524], 0
je 0x47793b
lea ecx, [esi + 0x520]
jmp 0x477953
xor eax, eax
mov cl, byte [ebp + eax]
cmp cl, byte [eax + 0x7992c5]
jne 0x477623
inc eax
cmp eax, 3
jne 0x477832
mov dword [esp + 4], edi
mov dword [esp], ebp
mov ecx, esi
call fcn.0047a52a
sub esp, 8
jmp 0x4776cf
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe7f
and ecx, dword [eax]
or ecx, 0x100
mov dword [eax], ecx
xor edi, edi
inc edi
mov dword [esp], edi
mov ecx, esi
call fcn.0047a7fe
sub esp, 4
mov dword [esp], edi
mov ecx, esi
call fcn.0047b2fc
sub esp, 4
mov eax, dword [esi + 0x4f4]
mov ecx, 0xffffff2f
and ecx, dword [eax]
or ecx, 0x50
mov dword [eax], ecx
jmp 0x4776c2
cmp edi, 2
jb 0x47795b
cmp al, 0x3f
jne 0x47795b
cmp byte [ebp + 1], 0x20
jne 0x477976
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe7f
and ecx, dword [eax]
or ecx, 0x100
mov dword [eax], ecx
xor edi, edi
mov dword [esp], edi
mov ecx, esi
call fcn.0047a7fe
sub esp, 4
mov dword [esp], 1
mov ecx, esi
call fcn.0047b2fc
sub esp, 4
mov eax, dword [esi + 0x4f4]
mov ecx, 0xffffff1f
and ecx, dword [eax]
or ecx, 0x60
mov dword [eax], ecx
mov dword [esp], edi
mov ecx, esi
call fcn.0047a6c6
sub esp, 4
jmp 0x47745d
cmp ebx, 2
jb 0x477737
cmp al, 0x3a
jne 0x477737
cmp byte [ebp + 1], 0x20
jne 0x477737
jmp 0x47777e
cmp dword [esi + 0x504], 0
je 0x4779ba
cmp dword [esi + 0x500], 0
je 0x4779ba
lea ecx, [esi + 0x4f8]
mov eax, dword [esi + 0x4f4]
jmp 0x4779c3
cmp al, 0x20
jne 0x477976
xor eax, eax
cmp byte [ebp + eax], 0x20
jne 0x477a1c
inc eax
cmp edi, eax
jne 0x477961
jmp 0x4776c2
mov ecx, esi
call fcn.0047b826
test al, al
jne 0x4776cf
mov ecx, esi
call fcn.0047dcde
test al, al
jne 0x4776cf
mov eax, dword [esi + 0x4f4]
bt dword [eax], 9
jb 0x477623
cmp edi, 2
jb 0x477a27
cmp byte [ebp], 0x3a
jne 0x477a2b
cmp byte [ebp + 1], 0x20
jne 0x477a2b
jmp 0x477a99
mov eax, dword [esi + 0x4f4]
lea ecx, [eax + 0x14]
mov ecx, dword [ecx]
mov dword [eax + 0x48], ecx
cmp dword [esi + 0x50c], 0
je 0x477a12
cmp dword [esi + 0x508], 0
je 0x477a12
mov ecx, dword [esi + 0x4fc]
mov edx, dword [esi + 0x508]
mov edi, dword [esi + 0x50c]
mov dword [esi + 0x504], edi
mov dword [esi + 0x500], edx
mov dword [esi + 0x4f8], ecx
xor ecx, ecx
mov dword [esi + 0x508], ecx
mov dword [esi + 0x50c], ecx
mov dword [esi + 0x4fc], ecx
mov ecx, 0xffffff3f
jmp 0x4775de
cmp eax, 0xffffffff
cmovne edi, eax
jmp 0x4776c2
test edi, edi
je 0x477a4a
xor eax, eax
cmp byte [ebp + eax], 0x23
je 0x477a3b
inc eax
cmp edi, eax
jne 0x477a2d
jmp 0x477a4a
cmp eax, 0xffffffff
je 0x477a4a
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], eax
jmp 0x477a52
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edi
xor ebx, ebx
inc ebx
mov dword [esp + 8], ebx
lea eax, [esp + 0xa4]
mov dword [esp], eax
mov dword [esp + 4], 0x79abca
lea ecx, [esp + 0x24]
call fcn.0040e69a
sub esp, 0xc
mov dword [esp + 4], ebx
mov dword [esp], 0x798335
lea ecx, [esp + 0xa4]
call fcn.0040e63a
sub esp, 8
test eax, eax
jne 0x477623
cmp dword [esi + 0x534], 0
je 0x477ab3
cmp dword [esi + 0x530], 0
je 0x477ab3
mov eax, dword [esi + 0x4f4]
jmp 0x477ad3
cmp dword [esi + 0x518], 0
mov eax, dword [esi + 0x4f4]
je 0x477b76
cmp dword [esi + 0x514], 0
je 0x477b76
mov ecx, 0xfffffe7f
and ecx, dword [eax]
or ecx, 0x100
mov dword [eax], ecx
mov ecx, esi
call fcn.0047e502
mov ecx, esi
call fcn.0047e46a
mov dword [esp], 0
mov ecx, esi
call fcn.0047a7fe
sub esp, 4
mov dword [esp], 1
mov ecx, esi
call fcn.0047b2fc
sub esp, 4
mov dword [esp], ebp
mov ecx, esi
call fcn.00485724
sub esp, 4
mov eax, dword [esi + 0x4f4]
mov ecx, 0xffffff3f
and ecx, dword [eax]
or ecx, 0x80
mov dword [eax], ecx
cmp dword [esi + 0x528], 0
mov bl, 1
je 0x477b50
cmp dword [esi + 0x524], 0
je 0x477b50
lea ecx, [esi + 0x520]
jmp 0x477b6c
cmp dword [esi + 0x504], 0
je 0x477be4
cmp dword [esi + 0x500], 0
je 0x477be4
lea ecx, [esi + 0x4f8]
mov ecx, dword [ecx]
mov dword [eax + 0x48], ecx
jmp 0x477c3b
mov ecx, 0xfffffe7f
and ecx, dword [eax]
or ecx, 0x100
mov dword [eax], ecx
mov ebx, dword [eax + 0x48]
mov dword [esp], 0
mov ecx, esi
call fcn.0047a7fe
sub esp, 4
mov dword [esp], 1
mov ecx, esi
call fcn.0047b2fc
sub esp, 4
mov dword [esp], ebp
mov ecx, esi
call fcn.00485724
sub esp, 4
mov ecx, dword [esi + 0x4f4]
mov edx, 0xffffff3f
and edx, dword [ecx]
or edx, 0x80
add ebx, 2
xor eax, eax
inc eax
mov dword [ecx], edx
mov dword [ecx + 0x48], ebx
cmp edi, 2
jb 0x477c55
cmp byte [ebp], 0x3a
mov bl, 1
je 0x477c49
jmp 0x477c57
xor eax, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], 0x4d2
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov eax, 0x40
mov dword [esp + 0xb4], eax
mov dword [esp + 0x18], eax
movups xmm0, xmmword [esp + 0xa4]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], 0x39
mov dword [esp], str.check_failed:__maybe_set_indentation_from_anchor_or_tag__
call fcn.004754e1
xor eax, eax
inc eax
cmp edi, 2
jb 0x477c57
cmp byte [ebp], 0x3a
jne 0x477c57
xor eax, eax
cmp byte [ebp + 1], 0x20
sete al
inc eax
jmp 0x477c57
mov bl, 1
mov dword [esp], eax
jmp 0x4776c5