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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf4
mov esi, ecx
mov eax, dword [ecx + 0x4f4]
mov edi, dword [eax + 0x3c]
mov ebx, dword [eax + 0x40]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], edi
mov eax, dword [eax]
test al, 0x40
je 0x476907
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xba]
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 ebp, ebp
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], 0x364
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov ebp, 0x40
mov dword [esp + 0xb4], ebp
mov dword [esp + 0x18], ebp
movups xmm0, xmmword [esp + 0xa4]
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]
not eax
test al, 0x18
je 0x476997
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xba]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [str.as_all_RSEQFLOW_state__line_contents.rem.begins_with_c_]
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 ebp, ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], 0x365
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov ebp, 0x40
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x18], ebp
movups xmm0, xmmword [esp + 0x90]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x23
call ecx
test ebx, ebx
je 0x476a88
movzx eax, byte [edi]
cmp eax, 0x5d
je 0x476bba
cmp eax, 0x23
je 0x476ba7
cmp eax, 0x20
jne 0x476a88
mov ecx, dword [esi + 0x4f4]
mov eax, dword [ecx + 0x40]
test eax, eax
je 0x4769d6
mov edx, dword [ecx + 0x3c]
cmp byte [edx], 0x20
je 0x476a6f
movaps xmm0, xmmword [str.check_failed:__m_tree__is_val_idunknown]
lea eax, [esp + 0xba]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [0x72dc60]
movups xmmword [eax + 0x10], xmm0
movaps xmm0, xmmword [0x72dc70]
movups xmmword [eax + 0x20], xmm0
movsd xmm0, qword [0x72dc80]
movsd qword [eax + 0x30], xmm0
mov word [eax + 0x38], 0x29
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], 0x34a
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov ebx, 0x40
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x18], ebx
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x3a
call ecx
mov ecx, dword [esi + 0x4f4]
mov eax, dword [ecx + 0x40]
test eax, eax
je 0x477108
mov edx, dword [ecx + 0x3c]
xor ecx, ecx
cmp byte [edx + ecx], 0x20
jne 0x477100
inc ecx
cmp eax, ecx
jne 0x476a74
jmp 0x477106
mov eax, dword [esi + 0x4f4]
mov ecx, dword [eax]
test cl, cl
js 0x476ab7
bt ecx, 8
jb 0x476bf5
call fcn.004abd0c
mov dword [esp + 4], 0x15
mov dword [esp], str.ERROR:_internal_error
jmp 0x476e28
bt ecx, 8
jae 0x476b4a
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xba]
movups xmmword [eax], xmm0
movsd xmm0, qword [0x72dc40]
movsd qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0x54584e52
mov word [eax + 0x1c], 0x2929
mov byte [eax + 0x1e], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], 0x389
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0x8c], edi
mov dword [esp + 0x18], edi
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
lea eax, [esp + 0x23]
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
mov dword [esp], eax
mov ecx, esi
call fcn.0047c4d0
sub esp, 8
test al, al
je 0x476c07
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe7f
and ecx, dword [eax]
or ecx, 0x100
mov dword [eax], ecx
movzx eax, byte [esp + 0x23]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
mov ecx, esi
call fcn.0047d122
sub esp, 0xc
jmp 0x477115
lea eax, [esp + 0x24]
mov dword [esp], eax
mov ecx, esi
call fcn.0047d7e4
jmp 0x477112
mov ecx, esi
call fcn.0047d956
mov dword [esp], 1
mov ecx, esi
call fcn.0047a622
sub esp, 4
mov eax, dword [esi + 0x4f4]
test byte [eax + 1], 0x20
je 0x477115
mov ecx, esi
call fcn.0047dac8
mov ecx, esi
call fcn.0047d956
jmp 0x477115
cmp ebx, 2
jae 0x476c6e
test ebx, ebx
jne 0x476d21
jmp 0x476e14
mov edi, dword [esp + 0x28]
mov bl, 1
test edi, edi
je 0x476fbb
mov eax, dword [esp + 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x7b
je 0x476e37
cmp ecx, 0x5b
jne 0x476e80
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 0x477108
movsx edx, byte [edi]
cmp edx, 0x2c
jne 0x476dca
cmp byte [edi + 1], 0x20
jne 0x476d21
test cl, 0x10
jne 0x476d0e
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xba]
movups xmmword [eax], xmm0
movsd xmm0, qword [0x72dcb0]
movsd qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0x29574f4c
mov word [eax + 0x1c], 0x29
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], 0x3e2
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0x64], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0x54]
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 ecx, dword [eax]
and ecx, 0xfffffe7f
or ecx, 0x80
mov dword [eax], ecx
jmp 0x476e08
movsx edx, byte [edi]
cmp edx, 0x2c
jne 0x476ddd
test cl, 0x10
jne 0x476db7
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xba]
movups xmmword [eax], xmm0
movsd xmm0, qword [0x72dcb0]
movsd qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0x29574f4c
mov word [eax + 0x1c], 0x29
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], 0x3ea
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], 0x1e
call ecx
mov eax, dword [esi + 0x4f4]
mov ecx, dword [eax]
and ecx, 0xfffffe7f
or ecx, 0x80
mov dword [eax], ecx
jmp 0x476eb7
dec ebx
lea eax, [edx - 0x3a]
cmp dl, 0x3a
cmove eax, ebx
test eax, eax
jne 0x476df6
jmp 0x476eb0
lea eax, [ebx - 1]
lea ecx, [edx - 0x3a]
cmp dl, 0x3a
cmovne eax, ecx
test eax, eax
je 0x476eb0
cmp ebx, 2
jb 0x476e14
cmp dl, 0x3a
jne 0x476e14
cmp byte [edi + 1], 0x20
jne 0x476e14
mov ecx, esi
call fcn.0047db4a
mov dword [esp], 2
jmp 0x47710b
call fcn.004abd0c
mov dword [esp + 4], 0x1c
mov dword [esp], str.ERROR:_was_expecting_a_comma
mov ecx, esi
call fcn.004857e6
sub esp, 8
jmp 0x477115
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 0x477108
movsx ecx, cl
lea edx, [edi - 1]
lea ebp, [ecx - 0x3a]
cmp cl, 0x3a
cmove ebp, edx
test ebp, ebp
je 0x476eb0
cmp edi, 1
je 0x476fbb
cmp cl, 0x3a
jne 0x476ec3
cmp byte [eax + 1], 0x20
je 0x476e01
jmp 0x476fb9
mov ecx, esi
call fcn.0047db4a
mov dword [esp], 1
jmp 0x47710b
cmp cl, 0x3f
jne 0x476fb9
cmp byte [eax + 1], 0x20
jne 0x476fb9
mov ecx, esi
call fcn.0047db4a
mov dword [esp], 2
mov ecx, esi
call fcn.0047a622
sub esp, 4
mov ecx, dword [esi + 0x4f4]
test byte [ecx + 1], 2
je 0x476f1c
add ecx, 0xc
mov dword [esp + 4], 0
mov dword [esp], 0x79abcb
call fcn.0040e63a
sub esp, 8
test eax, eax
je 0x476fa2
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xba]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [str.as_any_SSCL___m_state__scalar_as_all_F]
movups xmmword [eax + 0x10], xmm0
movaps xmm0, xmmword [0x72dca0]
movups xmmword [eax + 0x20], xmm0
mov dword [eax + 0x30], 0x22203d3d
mov word [eax + 0x34], 0x2922
mov byte [eax + 0x36], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], 0x3b9
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0x78], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0x68]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x37
call ecx
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffd1f
and ecx, dword [eax]
or ecx, 0x60
mov dword [eax], ecx
jmp 0x477115
xor ebx, ebx
mov ecx, esi
call fcn.0047b826
test al, al
jne 0x477115
mov ecx, esi
call fcn.0047dcde
test al, al
jne 0x477115
test bl, bl
jne 0x476fff
mov eax, dword [esp + 0x24]
cmp byte [eax], 0x2c
jne 0x476fff
cmp byte [eax + 1], 0x20
jne 0x476fff
dec eax
mov dword [esp], eax
mov ecx, esi
call fcn.00485886
sub esp, 4
jmp 0x476e08
test edi, edi
je 0x477027
mov eax, dword [esp + 0x24]
movzx ecx, byte [eax]
cmp ecx, 9
je 0x477040
cmp ecx, 0x2c
jne 0x477027
dec eax
mov dword [esp], eax
mov ecx, esi
call fcn.00485886
sub esp, 4
jmp 0x476eb7
call fcn.004abd0c
mov dword [esp + 4], 0x12
mov dword [esp], str.ERROR:_parse_error
jmp 0x476e28
mov ecx, dword [esi + 0x4f4]
mov eax, dword [ecx + 0x40]
test eax, eax
je 0x477059
mov edx, dword [ecx + 0x3c]
cmp byte [edx], 9
je 0x4770ee
movaps xmm0, xmmword [str.check_failed:__m_tree__is_val_idunknown]
lea eax, [esp + 0xba]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [0x72dc60]
movups xmmword [eax + 0x10], xmm0
movaps xmm0, xmmword [0x72dc70]
movups xmmword [eax + 0x20], xmm0
movsd xmm0, qword [0x72dc80]
movsd qword [eax + 0x30], xmm0
mov word [eax + 0x38], 0x29
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], 0x34a
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov ebx, 0x40
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x18], ebx
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x3a
call ecx
mov ecx, dword [esi + 0x4f4]
mov eax, dword [ecx + 0x40]
test eax, eax
je 0x477108
mov edx, dword [ecx + 0x3c]
xor ecx, ecx
cmp byte [edx + ecx], 9
jne 0x477100
inc ecx
cmp eax, ecx
jne 0x4770f3
jmp 0x477106
cmp ecx, 0xffffffff
cmovne eax, ecx
mov edi, eax
mov dword [esp], edi
mov ecx, esi
call fcn.0047a622
sub esp, 4
mov al, 1
add esp, 0xf4
pop esi
pop edi
pop ebx
pop ebp
ret