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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x134
mov esi, ecx
mov ecx, dword [ecx + 0x4f4]
mov eax, dword [ecx + 0x3c]
mov edi, dword [ecx + 0x40]
test edi, edi
je 0x47b88e
test eax, eax
je 0x47b88e
xor edx, edx
cmp byte [eax + edx], 0x20
jne 0x47b855
inc edx
cmp edi, edx
jne 0x47b848
jmp 0x47b88e
xor ebx, ebx
cmp edx, 0xffffffff
mov ecx, edx
cmove ecx, ebx
add eax, ecx
cmp edx, 0xffffffff
je 0x47b88e
mov ebp, edi
sub ebp, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
cmp ebp, 2
jae 0x47bbc2
cmp edi, edx
je 0x47b8a0
mov bl, byte [eax]
jmp 0x47bd6f
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
test eax, eax
setne dl
test ecx, ecx
setne bl
and bl, dl
cmp bl, 1
jne 0x47c18f
mov byte [esp + 0x2b], bl
mov edx, dword [esi + 0x4f4]
mov ebx, dword [edx]
mov edi, ebx
not ebx
test ebx, 0x220
jne 0x47b991
mov eax, edi
test al, 0x40
jne 0x47b96e
movaps xmm0, xmmword [str.check_failed:__has_none_]
lea eax, [esp + 0xec]
movups xmmword [eax], xmm0
movsd xmm0, qword [str.as_any_R]
movsd qword [eax + 0x10], xmm0
mov dword [eax + 0x18], 0x2959454b
mov word [eax + 0x1c], 0x29
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], 0x824
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0x98], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0x88]
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 + 0x2c]
dec eax
mov dword [esp], eax
mov ecx, esi
call fcn.00485948
sub esp, 4
mov edx, dword [esi + 0x4f4]
and dword [edx], 0xffffffdf
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov ebp, ecx
sub ebp, dword [edx + 0x2c]
lea edi, [ecx + eax]
mov edx, dword [edx + 0x3c]
cmp edi, edx
ja 0x47ba48
movaps xmm0, xmmword [0x72dd00]
lea eax, [esp + 0xec]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [str..end_____m_state__line_contents.rem.begi]
movups xmmword [eax + 0x10], xmm0
movaps xmm0, xmmword [0x72df10]
movups xmmword [eax + 0x20], xmm0
movsd xmm0, qword [0x72df20]
movsd qword [eax + 0x30], xmm0
mov dword [eax + 0x38], 0x2929286e
mov byte [eax + 0x3c], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], 0x82f
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0x84], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0x74]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x3d
call ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x4f4]
mov edx, dword [edx + 0x3c]
add eax, ecx
sub eax, edx
mov dword [esp], eax
mov ecx, esi
call fcn.0047a622
sub esp, 4
mov eax, dword [esi + 0x4f4]
mov edx, dword [eax + 0x40]
test edx, edx
je 0x47ba98
mov edi, dword [eax + 0x3c]
xor ecx, ecx
movzx ebx, byte [edi + ecx]
cmp ebx, 9
je 0x47ba79
cmp ebx, 0x20
jne 0x47ba80
inc ecx
cmp edx, ecx
jne 0x47ba6b
jmp 0x47ba98
cmp ecx, 0xffffffff
je 0x47ba98
mov dword [esp], ecx
mov ecx, esi
call fcn.0047a622
sub esp, 4
mov eax, dword [esi + 0x4f4]
mov ecx, dword [eax]
mov edx, ecx
not edx
test dl, 0x44
mov bl, byte [esp + 0x2b]
jne 0x47bb4c
cmp dword [esi + 0x504], 0
je 0x47bb2d
cmp dword [esi + 0x500], 0
je 0x47bb2d
movaps xmm0, xmmword [str.check_failed:__m_tree__is_val_idunknown]
lea eax, [esp + 0xec]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [0x72df40]
movups xmmword [eax + 0x10], xmm0
mov word [eax + 0x20], 0x29
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], 0x83a
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0x70], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0x60]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x22
call ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x504], ecx
mov dword [esi + 0x500], eax
mov dword [esi + 0x4f8], ebp
jmp 0x47c055
test dl, 0x84
jne 0x47bb81
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x40]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
test eax, eax
mov dword [esp + 0x34], ebp
je 0x47bc1e
xor edx, edx
cmp byte [ecx + edx], 0x23
je 0x47bc22
inc edx
cmp eax, edx
jne 0x47bb6d
jmp 0x47bc28
test dl, 0x88
je 0x47bbff
mov edx, ecx
and edx, 0x1003
cmp edx, 0x1003
je 0x47bbff
test cl, 2
jne 0x47bd16
call fcn.004abd0c
mov dword [esp + 4], 0x15
mov dword [esp], str.ERROR:_internal_error
mov ecx, esi
call fcn.004857e6
sub esp, 8
jmp 0x47c055
mov bl, byte [eax]
cmp bl, 0x21
jne 0x47bd64
cmp byte [eax + 1], 0x21
jne 0x47bd42
sub edx, edi
xor edi, edi
movzx ebx, byte [eax + edi]
cmp ebx, 0x20
je 0x47be4e
cmp ebx, 0x2c
je 0x47be4e
lea ebx, [edx + edi]
inc edi
cmp ebx, 0xffffffff
jne 0x47bbdb
jmp 0x47be53
cmp dword [esi + 0x518], 0
je 0x47c03b
cmp dword [esi + 0x514], 0
jne 0x47bb2d
jmp 0x47c03b
xor eax, eax
jmp 0x47bc28
cmp edx, 0xffffffff
cmovne eax, edx
lea edi, [esp + 0x2c]
mov dword [edi], ecx
mov dword [edi + 4], eax
lea ebp, [esp + 0xec]
mov dword [esp], ebp
mov dword [esp + 8], 2
mov dword [esp + 4], 0x79abbf
mov ecx, edi
call fcn.0040e69a
sub esp, 0xc
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [edi + 4], ecx
mov dword [edi], eax
cmp dword [esi + 0x518], 0
je 0x47bcf3
cmp dword [esi + 0x514], 0
je 0x47bcf3
movaps xmm0, xmmword [str.check_failed:__m_tree__is_val_idunknown]
movups xmmword [esp + 0xec], xmm0
movaps xmm0, xmmword [str._val_tag.empty___key_tag.empty__has_any_]
movups xmmword [esp + 0xfc], xmm0
mov word [esp + 0x10c], 0x29
mov ecx, dword [esi + 0x4e4]
mov eax, dword [esi + 0x4f0]
xor edx, edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], 0x853
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edx, 0x40
mov dword [esp + 0x5c], edx
mov dword [esp + 0x18], edx
movups xmm0, xmmword [esp + 0x4c]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], 0x22
call eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x518], ecx
mov dword [esi + 0x514], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x510], eax
jmp 0x47c055
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x40]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x47bf22
xor edx, edx
cmp byte [ecx + edx], 0x23
je 0x47bf26
inc edx
cmp eax, edx
jne 0x47bd2e
jmp 0x47bf2c
cmp byte [eax + 1], 0x3c
jne 0x47bd64
sub edx, edi
xor edi, edi
cmp byte [eax + edi], 0x3e
je 0x47c22b
lea ebx, [edx + edi]
inc edi
cmp ebx, 0xffffffff
jne 0x47bd4c
jmp 0x47c239
mov ecx, ebp
lea ebp, [edi - 2]
cmp ebp, edx
mov ebp, ecx
jne 0x47bd8d
cmp bl, 0x21
jne 0x47b8a0
sub edx, edi
xor edi, edi
cmp byte [eax + edi], 0x20
je 0x47bdc0
lea ecx, [edx + edi]
inc edi
cmp ecx, 0xffffffff
jne 0x47bd7c
jmp 0x47bdc5
xor ebx, ebx
mov cl, byte [eax + ebx]
cmp cl, byte [ebx + 0x79a379]
jne 0x47b883
inc ebx
cmp ebx, 3
jne 0x47bd8f
sub edx, edi
xor edi, edi
cmp byte [eax + edi], 0x20
je 0x47c19c
lea ecx, [edx + edi]
inc edi
cmp ecx, 0xffffffff
jne 0x47bda8
jmp 0x47c1a1
cmp edi, 0xffffffff
jne 0x47bdc7
mov edi, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
test edi, edi
jne 0x47b8a0
movaps xmm0, xmmword [0x72dd00]
lea eax, [esp + 0xec]
movups xmmword [eax], xmm0
movsd xmm0, qword [str..len__]
movsd qword [eax + 0x10], xmm0
mov word [eax + 0x18], 0x2931
mov byte [eax + 0x1a], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], 0x81b
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0xac], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0x9c]
jmp 0x47c2bc
cmp edi, 0xffffffff
jne 0x47be55
mov edi, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
cmp edi, 1
ja 0x47beee
movaps xmm0, xmmword [0x72dd00]
lea eax, [esp + 0xec]
movups xmmword [eax], xmm0
movsd xmm0, qword [str..len__]
movsd qword [eax + 0x10], xmm0
mov word [eax + 0x18], 0x2932
mov byte [eax + 0x1a], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0xd8], edi
mov dword [esp + 0xdc], 0x804
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe4], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0xe8], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0xd8]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x1b
call ecx
mov dword [esp + 4], 5
mov dword [esp], str.__set
lea ecx, [esp + 0x20]
call fcn.0040e63a
sub esp, 8
test eax, eax
jne 0x47b8a0
mov eax, dword [esi + 0x4f4]
or dword [eax], 0x800
jmp 0x47b8a0
xor eax, eax
jmp 0x47bf2c
cmp edx, 0xffffffff
cmovne eax, edx
lea edx, [esp + 0x2c]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov ecx, edx
lea edi, [esp + 0xec]
mov dword [esp], edi
mov dword [esp + 8], 2
mov dword [esp + 4], 0x79abbf
call fcn.0040e69a
sub esp, 0xc
mov eax, dword [edi]
mov ecx, dword [edi + 4]
lea edx, [esp + 0x2c]
mov dword [edx + 4], ecx
mov dword [edx], eax
test ecx, ecx
je 0x47bfa8
test eax, eax
je 0x47bfa8
cmp dword [esi + 0x504], 0
je 0x47bb2d
cmp dword [esi + 0x500], 0
je 0x47bb2d
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x50c], ecx
mov dword [esi + 0x508], eax
mov dword [esi + 0x4fc], ebp
jmp 0x47c055
cmp dword [esi + 0x518], 0
je 0x47c03b
cmp dword [esi + 0x514], 0
je 0x47c03b
movaps xmm0, xmmword [str.check_failed:__m_tree__is_val_idunknown]
movups xmmword [esp + 0xec], xmm0
movaps xmm0, xmmword [str._val_tag.empty___key_tag.empty__has_any_]
movups xmmword [esp + 0xfc], xmm0
mov word [esp + 0x10c], 0x29
mov ecx, dword [esi + 0x4e4]
mov eax, dword [esi + 0x4f0]
xor edx, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], 0x86e
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edx, 0x40
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], edx
movups xmm0, xmmword [esp + 0x38]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], 0x22
call eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x518], ecx
mov dword [esi + 0x514], eax
mov dword [esi + 0x510], ebp
cmp dword [esi + 0x518], 0
je 0x47c18f
cmp dword [esi + 0x514], 0
je 0x47c18f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004877a1
cmp ax, 0xc
jne 0x47c18f
mov eax, dword [esi + 0x4f4]
mov eax, dword [eax]
not eax
test eax, 0x1003
jne 0x47c18f
lea edi, [esp + 0xec]
mov dword [esp], edi
mov ecx, esi
call fcn.0047ea66
sub esp, 4
mov ecx, dword [esi + 0x14]
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov edi, dword [esi + 0x4f4]
mov ebx, dword [edi + 8]
xor edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 0xc], 0x10
call fcn.0048de16
sub esp, 0x14
mov ebp, dword [esi + 0x14]
mov eax, dword [esi + 0x514]
mov ecx, dword [esi + 0x518]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
lea ebx, [esp + 0x12c]
mov dword [esp], ebx
call fcn.00487740
mov eax, dword [esi + 0x4f4]
mov eax, dword [eax + 8]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov ebx, dword [ebp]
shl eax, 4
lea eax, [eax + eax*4]
mov dword [ebx + eax + 0x20], ecx
mov dword [ebx + eax + 0x24], edx
mov ecx, dword [ebp]
or dword [ecx + eax], 0x800
mov dword [esi + 0x514], edi
mov dword [esi + 0x518], edi
mov eax, dword [esi + 0x534]
test eax, eax
je 0x47c184
mov edx, dword [esi + 0x530]
test edx, edx
je 0x47c184
mov ecx, dword [esi + 0x14]
mov edi, dword [esi + 0x4f4]
mov edi, dword [edi + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], edi
call fcn.00485a74
sub esp, 0xc
xor eax, eax
mov dword [esi + 0x530], eax
mov dword [esi + 0x534], eax
mov ecx, esi
call fcn.00476476
mov bl, byte [esp + 0x2b]
mov eax, ebx
add esp, 0x134
pop esi
pop edi
pop ebx
pop ebp
ret
cmp edi, 0xffffffff
jne 0x47c1a3
mov edi, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
cmp edi, 2
ja 0x47b8a0
movaps xmm0, xmmword [0x72dd00]
lea eax, [esp + 0xec]
movups xmmword [eax], xmm0
movsd xmm0, qword [str..len__]
movsd qword [eax + 0x10], xmm0
mov word [eax + 0x18], 0x2933
mov byte [eax + 0x1a], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], 0x814
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0xc0], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0xb0]
jmp 0x47c2bc
cmp edi, 0xffffffff
je 0x47c239
lea edx, [edi + 1]
cmp edi, 0xfffffffe
cmovne ebp, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
cmp ebp, 1
ja 0x47b8a0
movaps xmm0, xmmword [0x72dd00]
lea eax, [esp + 0xec]
movups xmmword [eax], xmm0
movsd xmm0, qword [str..len__]
movsd qword [eax + 0x10], xmm0
mov word [eax + 0x18], 0x2932
mov byte [eax + 0x1a], 0
mov edx, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4f0]
xor edi, edi
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc8], 0x80d
mov dword [esp + 0xcc], edi
mov dword [esp + 0xd0], str.C:_Projects_VisualStudio_TMLoader_external_ryml_c4_yml_parse.cpp
mov edi, 0x40
mov dword [esp + 0xd4], edi
mov dword [esp + 0x18], edi
movups xmm0, xmmword [esp + 0xc4]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], eax
mov dword [esp + 4], 0x1b
call ecx
jmp 0x47b8a0