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

Disassembly:
push ebx
push edi
push esi
sub esp, 0x11c
mov esi, ecx
mov ecx, dword [ecx + 0x4f4]
mov edx, dword [ecx + 0x3c]
mov eax, dword [ecx + 0x40]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
mov ecx, dword [ecx]
not ecx
test cl, 0x14
je 0x477d16
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xe0]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [0x72dce0]
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 + 0xcc], edi
mov dword [esp + 0xd0], 0x50b
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd8], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0xdc], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0xcc]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x23
call ecx
mov eax, dword [esp + 0x24]
test eax, eax
je 0x477e02
mov eax, dword [esp + 0x20]
movzx ecx, byte [eax]
cmp ecx, 0x23
je 0x4787c3
cmp ecx, 0x20
jne 0x477e0a
mov ecx, dword [esi + 0x4f4]
mov eax, dword [ecx + 0x40]
test eax, eax
je 0x477d50
mov edx, dword [ecx + 0x3c]
cmp byte [edx], 0x20
je 0x477de9
movaps xmm0, xmmword [str.check_failed:__m_tree__is_val_idunknown]
lea eax, [esp + 0xe0]
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 0x4782e6
mov edx, dword [ecx + 0x3c]
xor ecx, ecx
cmp byte [edx + ecx], 0x20
jne 0x4782de
inc ecx
cmp eax, ecx
jne 0x477dee
jmp 0x4782e4
mov edx, dword [esi + 0x4f4]
jmp 0x477e72
mov edx, dword [esi + 0x4f4]
cmp cl, 0x7d
jne 0x477e72
test byte [edx + 1], 2
je 0x477e35
dec eax
mov dword [esp], eax
mov ecx, esi
call fcn.00485948
sub esp, 4
mov eax, dword [esi + 0x4f4]
and dword [eax], 0xffffff7f
mov ecx, esi
call fcn.0047d956
mov dword [esp], 1
mov ecx, esi
call fcn.0047a622
sub esp, 4
mov eax, dword [esi + 0x4f4]
mov bl, 1
test byte [eax + 1], 0x20
je 0x4787d9
mov ecx, esi
call fcn.0047dac8
mov ecx, esi
call fcn.0047d956
jmp 0x4787d9
mov eax, dword [edx]
bt eax, 8
jb 0x477ea3
test al, 0x40
jne 0x47808b
test al, al
js 0x4782f5
call fcn.004abd0c
mov dword [esp + 4], 0x15
mov dword [esp], str.ERROR:_internal_error
jmp 0x47879a
test al, 0x40
je 0x477f42
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xe0]
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 edi, edi
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], 0x537
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc4], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0xc8], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0xb8]
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, al
jns 0x477fe1
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xe0]
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 edi, edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], 0x538
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0xb4], edi
mov dword [esp + 0x18], edi
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]
bt eax, 0xd
jae 0x478071
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xe0]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [0x72dcf0]
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 + 0x90], edi
mov dword [esp + 0x94], 0x539
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0xa0], edi
mov dword [esp + 0x18], edi
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
mov eax, dword [esp + 0x24]
cmp eax, 2
jae 0x47828c
test eax, eax
jne 0x4782b6
jmp 0x478786
test al, al
jns 0x478124
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xe0]
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 edi, edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], 0x551
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
mov eax, dword [esi + 0x4f4]
mov eax, dword [eax]
bt eax, 9
jb 0x478272
lea eax, [esp + 0x2b]
mov dword [esp + 4], eax
lea eax, [esp + 0x20]
mov dword [esp], eax
mov ecx, esi
call fcn.0047c4d0
sub esp, 8
test al, al
je 0x478272
movzx eax, byte [esp + 0x2b]
lea edi, [esp + 0x20]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
mov ecx, esi
call fcn.0047d8c8
sub esp, 0xc
mov eax, dword [esi + 0x4f4]
movsd xmm0, qword [eax + 0x3c]
movsd qword [edi], xmm0
lea ebx, [esp + 0x2c]
mov dword [esp], ebx
mov dword [esp + 8], 2
mov dword [esp + 4], 0x79abbf
mov ecx, edi
call fcn.00485a0a
sub esp, 0xc
mov eax, dword [ebx + 4]
test eax, eax
je 0x478272
cmp eax, 1
mov eax, dword [esp + 0x2c]
mov cl, byte [eax]
cmp cl, 0x3a
je 0x4781cc
cmp cl, 0x7d
je 0x4781cc
movzx ecx, cl
cmp ecx, 0x2c
jne 0x478272
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jae 0x47825b
movaps xmm0, xmmword [0x72dd00]
lea eax, [esp + 0xe0]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [0x72dd10]
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x20], 0x74732e6d
mov word [eax + 0x24], 0x2972
mov byte [eax + 0x26], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], 0x55c
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], 0x27
call ecx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x20], eax
sub eax, ecx
sub dword [esp + 0x24], eax
mov dword [esp], eax
mov ecx, esi
call fcn.0047a622
sub esp, 4
mov ecx, dword [esp + 0x24]
cmp ecx, 2
jae 0x4783f5
test ecx, ecx
jne 0x478425
jmp 0x478466
mov eax, dword [esp + 0x20]
cmp byte [eax], 0x2c
jne 0x4782b6
cmp byte [eax + 1], 0x20
jne 0x4782b6
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffebf
and ecx, dword [eax]
or ecx, 0x40
mov dword [eax], ecx
mov dword [esp], 2
jmp 0x4782e9
mov eax, dword [esp + 0x20]
cmp byte [eax], 0x2c
jne 0x478786
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffebf
and ecx, dword [eax]
or ecx, 0x40
mov dword [eax], ecx
mov dword [esp], 1
jmp 0x4782e9
cmp ecx, 0xffffffff
cmovne eax, ecx
mov edi, eax
mov dword [esp], edi
mov ecx, esi
call fcn.0047a622
jmp 0x4787d4
bt eax, 9
jb 0x478374
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xe0]
movups xmmword [eax], xmm0
movsd xmm0, qword [0x72dd20]
movsd qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0x294c4353
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], 0x5ca
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
lea eax, [esp + 0xe0]
mov dword [esp + 4], eax
lea eax, [esp + 0x20]
mov dword [esp], eax
mov ecx, esi
call fcn.0047c4d0
sub esp, 8
test al, al
je 0x478559
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe3f
and ecx, dword [eax]
or ecx, 0x100
mov dword [eax], ecx
movzx eax, byte [esp + 0xe0]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
mov ecx, esi
call fcn.0047d502
sub esp, 0xc
mov eax, dword [esi + 0x4f4]
test byte [eax + 1], 0x20
je 0x4787d7
mov ecx, esi
call fcn.0047dac8
mov ecx, esi
call fcn.0047d956
jmp 0x4787d7
mov eax, dword [esp + 0x20]
cmp byte [eax], 0x3a
jne 0x478425
cmp byte [eax + 1], 0x20
jne 0x478425
mov eax, dword [esi + 0x4f4]
mov ecx, 0xffffff1f
and ecx, dword [eax]
or ecx, 0x80
mov dword [eax], ecx
mov dword [esp], 2
jmp 0x47852c
mov eax, dword [esp + 0x20]
movsx edx, byte [eax]
dec ecx
lea edi, [edx - 0x3a]
cmp edx, 0x3a
cmove edi, ecx
test edi, edi
je 0x478510
movzx ecx, dl
cmp ecx, 0x2c
je 0x4786f3
cmp ecx, 0x7d
je 0x47862a
cmp ecx, 0x3f
jne 0x478466
mov eax, dword [esi + 0x4f4]
or dword [eax], 0x20
jmp 0x4782d5
mov ecx, esi
call fcn.0047b826
test al, al
jne 0x4787d7
mov ecx, esi
call fcn.0047c2d8
test al, al
jne 0x4787d7
mov dword [esp + 4], 0
mov dword [esp], 0x79abcb
lea ecx, [esp + 0x20]
call fcn.0040e63a
sub esp, 8
test eax, eax
je 0x4787d7
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
test edx, edx
je 0x4784cc
xor eax, eax
movzx edi, byte [ecx + eax]
cmp edi, 9
je 0x4784c7
cmp edi, 0x20
jne 0x4787a8
inc eax
cmp edx, eax
jne 0x4784b5
xor eax, eax
add ecx, eax
mov dword [esp + 0x20], ecx
sub edx, eax
mov dword [esp + 0x24], edx
je 0x478786
movzx ecx, byte [ecx]
cmp ecx, 0x23
je 0x4787b6
cmp ecx, 0x3a
jne 0x478786
mov ecx, dword [esi + 0x4f4]
mov edx, 0xffffff1f
and edx, dword [ecx]
or edx, 0x80
mov dword [ecx], edx
inc eax
mov dword [esp], eax
jmp 0x47852c
mov eax, dword [esi + 0x4f4]
mov ecx, 0xffffff1f
and ecx, dword [eax]
or ecx, 0x80
mov dword [eax], ecx
mov dword [esp], 1
mov ecx, esi
call fcn.0047a622
sub esp, 4
mov eax, dword [esi + 0x4f4]
test byte [eax + 1], 2
jne 0x4787d7
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov ecx, esi
call fcn.00485724
jmp 0x4787d4
cmp dword [esp + 0x24], 0
je 0x4785bc
mov eax, dword [esp + 0x20]
movzx eax, byte [eax]
cmp eax, 0x7b
je 0x478706
cmp eax, 0x5b
jne 0x4785bc
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe3f
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 ecx, esi
call fcn.0047e700
mov dword [esp], edi
mov ecx, esi
call fcn.0047ad2a
sub esp, 4
mov eax, dword [esi + 0x4f4]
or dword [eax], 0x10
jmp 0x4782e6
mov ecx, esi
call fcn.0047b826
test al, al
jne 0x4787d7
mov ecx, esi
call fcn.0047dcde
test al, al
jne 0x4787d7
cmp dword [esp + 0x24], 0
je 0x478786
mov eax, dword [esp + 0x20]
mov cl, byte [eax]
cmp cl, 0x2c
jne 0x478756
dec eax
mov dword [esp], eax
mov ecx, esi
call fcn.00485948
sub esp, 4
mov eax, dword [esi + 0x4f4]
mov ecx, 0xffffff3f
and ecx, dword [eax]
or ecx, 0x40
mov dword [eax], ecx
mov dword [esp], 1
mov ecx, esi
call fcn.0047a622
sub esp, 4
jmp 0x4783d2
mov ecx, dword [esi + 0x4f4]
test byte [ecx + 1], 2
jne 0x4786b3
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xe0]
movups xmmword [eax], xmm0
movsd xmm0, qword [0x72dd20]
movsd qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0x294c4353
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], 0x58d
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 [esp + 0x20]
dec eax
mov dword [esp], eax
mov ecx, esi
call fcn.00485948
sub esp, 4
mov eax, dword [esi + 0x4f4]
mov ecx, dword [eax]
mov edx, ecx
and edx, 0xffffff7f
mov dword [eax], edx
bt ecx, 0xd
jae 0x4786e7
mov ecx, esi
call fcn.0047dac8
mov ecx, esi
call fcn.0047d956
mov ecx, esi
call fcn.0047d956
jmp 0x4782d5
dec eax
mov dword [esp], eax
mov ecx, esi
call fcn.00485948
sub esp, 4
jmp 0x4782d5
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe3f
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 ecx, esi
call fcn.0047e700
mov dword [esp], edi
mov ecx, esi
call fcn.0047b2fc
sub esp, 4
mov eax, dword [esi + 0x4f4]
mov ecx, 0xfffffe2f
and ecx, dword [eax]
or ecx, 0x50
mov dword [eax], ecx
jmp 0x4782e6
mov edx, dword [esi + 0x4f4]
mov edx, dword [edx]
bt edx, 0xd
jae 0x478786
cmp cl, 0x5d
jne 0x478786
bt edx, 9
jae 0x4783e2
dec eax
mov dword [esp], eax
mov ecx, esi
call fcn.00485948
sub esp, 4
jmp 0x4783e2
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 0x4787d9
cmp eax, 0xffffffff
jne 0x4784ce
jmp 0x4784cc
mov dword [esp], eax
mov ecx, esi
call fcn.0047a622
sub esp, 4
lea eax, [esp + 0xe0]
mov dword [esp], eax
mov ecx, esi
call fcn.0047d7e4
sub esp, 4
mov bl, 1
mov eax, ebx
add esp, 0x11c
pop esi
pop edi
pop ebx
ret