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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
xor edx, edx
mov esi, ecx
dec edx
push 0xffffffffffffffff
call fcn.004a4115
add esp, 4
mov eax, dword [esi + 0xf8]
cmp byte [eax - 0x28], 0
je 0x4a4346
cmp byte [eax - 0x27], 0
je 0x4a4346
movsd xmm0, qword [eax - 8]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [eax - 0x18]
movsd xmm1, qword [eax - 0x10]
mov eax, 0x4cd5ef
movsd qword [esp + 0x18], xmm1
movsd qword [esp + 0x10], xmm0
mov dword [esi], 3
mov dword [esi + 0x30], str.while_scanning_a_simple_key
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [esi + 0x38], xmm0
movsd qword [esi + 0x40], xmm1
movsd xmm0, qword [esp + 0x20]
movsd qword [esi + 0x48], xmm0
mov dword [esi + 4], str.could_not_find_expected_:
movsd xmm0, qword [esi + 0xa0]
movsd xmm1, qword [esi + 0xa8]
movsd qword [esi + 0x18], xmm0
movsd qword [esi + 0x20], xmm1
movsd xmm0, qword [esi + 0xb0]
movsd qword [esi + 0x28], xmm0
jmp 0x4a434f
mov byte [eax - 0x28], 0
mov eax, 0x4cc7d4
cmp byte [eax], 0
jne 0x4a444e
xor ebx, ebx
mov byte [esi + 0xec], 0
mov ecx, esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
movsd xmm0, qword [esi + 0xa0]
movsd xmm1, qword [esi + 0xa8]
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 0x18], xmm1
movsd xmm0, qword [esi + 0xb0]
movsd qword [esp + 0x20], xmm0
call fcn.004a3f4d
mov ecx, 0x10
xor edx, edx
call fcn.0049cc8e
mov edi, eax
xor edx, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], eax
add eax, 0x10
mov ecx, esi
mov dword [esp + 0x38], eax
mov dword [edi + 4], ebx
mov dword [edi], ebx
mov dword [edi + 0xc], ebx
mov dword [edi + 8], ebx
inc edx
push ebx
call fcn.004a37f5
add esp, 4
test al, al
je 0x4a4433
xor edi, edi
lea eax, [esi + 0xa0]
lea ebx, [esp + 0x34]
inc edi
mov dword [esp + 8], eax
mov ecx, dword [esi + 0x70]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xd0
cmp dl, 0xa
jb 0x4a4410
mov edx, eax
and dl, 0xdf
add dl, 0xbf
cmp dl, 0x1a
jb 0x4a4410
cmp eax, 0x5f
je 0x4a4410
cmp eax, 0x2d
jne 0x4a44e9
mov ecx, esi
mov edx, ebx
call fcn.004a7a8b
mov ecx, esi
mov edx, edi
push 0
call fcn.004a37f5
add esp, 4
test al, al
jne 0x4a43e5
mov edi, dword [esp + 0x34]
test edi, edi
je 0x4a4444
add edi, 0xfffffff8
push edi
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, 0x4cd5ef
cmp byte [eax], 0
je 0x4a4458
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0xcc]
lea ebx, [esi + 0xcc]
cmp eax, dword [esi + 0xc4]
jne 0x4a44a1
mov dword [esp], ecx
mov dword [esp + 4], edi
mov edi, edx
lea eax, [esi + 0xc4]
lea ecx, [esi + 0xc0]
lea edx, [esi + 0xc8]
push eax
push ebx
call fcn.0049d0d6
mov edx, edi
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 8]
add esp, 8
mov eax, dword [esi + 0xcc]
mov dword [eax], edx
mov dword [eax + 4], 0
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
lea edi, [eax + 0x10]
lea esi, [esp + 0x60]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
movsd xmm0, qword [esp + 0x58]
movsd qword [eax + 0x48], xmm0
movsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x50]
movsd qword [eax + 0x40], xmm1
movsd qword [eax + 0x38], xmm0
add dword [ebx], 0x50
mov al, 1
jmp 0x4a4450
mov edi, dword [esp + 0x34]
cmp edi, dword [esp + 0x3c]
je 0x4a451a
cmp eax, 0xc1
jg 0x4a4551
lea ecx, [eax - 9]
cmp ecx, 0x17
ja 0x4a4510
mov edx, 0x800013
bt edx, ecx
jb 0x4a45cf
test eax, eax
je 0x4a45cf
jmp 0x4a456e
mov dword [esi], 3
mov dword [esi + 0x30], str.while_scanning_a_directive
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [esi + 0x38], xmm0
movsd qword [esi + 0x40], xmm1
movsd xmm0, qword [esp + 0x20]
movsd qword [esi + 0x48], xmm0
mov dword [esi + 4], str.could_not_find_expected_directive_name
jmp 0x4a45a3
cmp eax, 0xc2
je 0x4a45c9
cmp eax, 0xe2
jne 0x4a456e
cmp byte [ecx + 1], 0x80
jne 0x4a456e
mov al, byte [ecx + 2]
and al, 0xfe
cmp al, 0xa8
je 0x4a45cf
mov dword [esi], 3
mov dword [esi + 0x30], str.while_scanning_a_directive
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [esi + 0x38], xmm0
movsd qword [esi + 0x40], xmm1
movsd xmm0, qword [esp + 0x20]
movsd qword [esi + 0x48], xmm0
mov dword [esi + 4], str.found_unexpected_non_alphabetical_character
mov eax, dword [esp + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esi + 0x18], xmm0
movsd qword [esi + 0x20], xmm1
movsd xmm0, qword [eax + 0x10]
movsd qword [esi + 0x28], xmm0
jmp 0x4a442f
cmp byte [ecx + 1], 0x85
jne 0x4a456e
mov ecx, edi
mov edx, str.YAML
call fcn.0049fa7f
test eax, eax
je 0x4a464e
mov ecx, edi
mov edx, 0x4cd0a2
call fcn.0049fa7f
test eax, eax
je 0x4a469a
mov dword [esi], 3
mov dword [esi + 0x30], str.while_scanning_a_directive
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [esi + 0x38], xmm0
movsd qword [esi + 0x40], xmm1
movsd xmm0, qword [esp + 0x20]
movsd qword [esi + 0x48], xmm0
mov dword [esi + 4], str.found_unknown_directive_name
mov eax, dword [esp + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esi + 0x18], xmm0
movsd qword [esi + 0x20], xmm1
movsd xmm0, qword [eax + 0x10]
movsd qword [esi + 0x28], xmm0
jmp 0x4a4bad
xor edx, edx
mov ecx, esi
inc edx
push 0
call fcn.004a37f5
add esp, 4
test al, al
je 0x4a4bad
xor ebx, ebx
inc ebx
mov eax, dword [esi + 0x70]
movzx eax, byte [eax]
cmp eax, 0x20
je 0x4a467c
cmp eax, 9
jne 0x4a4704
mov ecx, esi
call fcn.004a3f4d
mov ecx, esi
mov edx, ebx
push 0
call fcn.004a37f5
add esp, 4
test al, al
jne 0x4a4668
jmp 0x4a4bad
xor eax, eax
xor edx, edx
mov ecx, esi
inc edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
push eax
call fcn.004a37f5
add esp, 4
mov edx, 0x4cd5ef
test al, al
je 0x4a46fb
lea eax, [esi + 0x38]
lea ecx, [esi + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esi + 0x70]
movzx eax, byte [eax]
cmp eax, 9
je 0x4a46dc
cmp eax, 0x20
jne 0x4a4791
mov ecx, esi
call fcn.004a3f4d
xor edx, edx
mov ecx, esi
inc edx
push 0
call fcn.004a37f5
add esp, 4
test al, al
jne 0x4a46c8
jmp 0x4a493c
xor ecx, ecx
xor ebx, ebx
jmp 0x4a497a
lea eax, [esp + 0x40]
lea edx, [esp + 0x10]
mov ecx, esi
push eax
call fcn.004a8899
add esp, 4
test al, al
je 0x4a4bad
mov eax, dword [esi + 0x70]
cmp byte [eax], 0x2e
jne 0x4a480f
mov ecx, esi
call fcn.004a3f4d
lea eax, [esp + 0x44]
lea edx, [esp + 0x10]
mov ecx, esi
push eax
call fcn.004a8899
add esp, 4
test al, al
je 0x4a4bad
xorps xmm0, xmm0
movsd xmm1, qword [esp + 0x18]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
xor ebx, ebx
mov dword [esp + 0x2c], 3
mov dword [esp + 0xc], 0
movaps xmmword [esp + 0x60], xmm0
movsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x78], xmm1
mov dword [esp + 4], edx
mov dword [esp], ecx
jmp 0x4a49b5
xor edx, edx
lea eax, [esp + 0x30]
mov ecx, esi
inc edx
push eax
lea eax, [esp + 0x14]
push eax
call fcn.004a850b
add esp, 8
test al, al
je 0x4a493c
xor edx, edx
mov ecx, esi
inc edx
push 0
call fcn.004a37f5
add esp, 4
test al, al
je 0x4a493c
mov eax, dword [esi + 0x70]
movzx ecx, byte [eax]
cmp ecx, 0x20
je 0x4a47e0
mov eax, str.did_not_find_expected_whitespace
cmp ecx, 9
jne 0x4a48e5
mov eax, dword [esi + 0x70]
movzx eax, byte [eax]
cmp eax, 0x20
je 0x4a47f0
cmp eax, 9
jne 0x4a4849
mov ecx, esi
call fcn.004a3f4d
xor edx, edx
mov ecx, esi
inc edx
push 0
call fcn.004a37f5
add esp, 4
test al, al
jne 0x4a47e0
jmp 0x4a493c
mov dword [esi], 3
mov dword [esi + 0x30], str.while_scanning_a__YAML_directive
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [esi + 0x38], xmm0
movsd qword [esi + 0x40], xmm1
movsd xmm0, qword [esp + 0x20]
movsd qword [esi + 0x48], xmm0
mov dword [esi + 4], str.did_not_find_expected_digit_or_._character
jmp 0x4a4628
xor edx, edx
mov ecx, esi
inc edx
push ebx
lea eax, [esp + 0x14]
push eax
push 0
push 1
call fcn.004a7fc1
add esp, 0x10
test al, al
je 0x4a493c
xor edx, edx
mov ecx, esi
inc edx
push 0
call fcn.004a37f5
add esp, 4
test al, al
je 0x4a493c
mov edx, dword [esi + 0x70]
mov eax, str.did_not_find_expected_whitespace_or_line_break
movzx ecx, byte [edx]
cmp ecx, 0xc1
jg 0x4a48b6
lea edx, [ecx - 9]
cmp edx, 0x17
ja 0x4a48d9
mov ebx, 0x800013
bt ebx, edx
jae 0x4a48d9
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov edx, 0x4cc7d4
jmp 0x4a497a
cmp ecx, 0xc2
je 0x4a48df
cmp ecx, 0xe2
jne 0x4a48e5
cmp byte [edx + 1], 0x80
jne 0x4a48e5
mov cl, byte [edx + 2]
and cl, 0xfe
cmp cl, 0xa8
je 0x4a48a4
jmp 0x4a48e5
test ecx, ecx
je 0x4a48a4
jmp 0x4a48e5
cmp byte [edx + 1], 0x85
je 0x4a48a4
mov dword [esi], 3
mov dword [esi + 0x30], str.while_scanning_a__TAG_directive
mov ecx, dword [esp]
mov edx, dword [esp + 8]
movsd xmm0, qword [esp + 0x20]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
mov dword [esi + 4], eax
mov ecx, dword [esp + 4]
movsd xmm0, qword [edx + 0x10]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4a4955
add eax, 0xfffffff8
push eax
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x34]
mov ebx, 0
test eax, eax
je 0x4a4973
add eax, 0xfffffff8
push eax
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
xor ecx, ecx
mov edx, 0x4cd5ef
cmp byte [edx], 0
je 0x4a4984
jmp 0x4a4b7f
xorps xmm0, xmm0
movsd xmm1, qword [esp + 0x18]
mov eax, dword [esp + 8]
mov dword [esp + 0x2c], 4
mov dword [esp + 0xc], ecx
mov dword [esp + 4], ecx
mov dword [esp], ebx
movaps xmmword [esp + 0x60], xmm0
movsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x78], xmm1
movsd qword [esp + 0x70], xmm0
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x50], xmm1
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x58], xmm0
xor edx, edx
mov ecx, esi
inc edx
push 0
call fcn.004a37f5
add esp, 4
test al, al
je 0x4a4b7b
mov dword [esp + 0x28], ebx
xor ebx, ebx
inc ebx
mov eax, dword [esi + 0x70]
movzx ecx, byte [eax]
cmp ecx, 9
je 0x4a4a18
cmp ecx, 0x20
jne 0x4a4a36
mov ecx, esi
call fcn.004a3f4d
mov ecx, esi
mov edx, ebx
push 0
call fcn.004a37f5
add esp, 4
test al, al
jne 0x4a4a08
jmp 0x4a4b77
cmp ecx, 0x23
jne 0x4a4a9a
xor ebx, ebx
inc ebx
mov eax, dword [esi + 0x70]
movzx ecx, byte [eax]
cmp ecx, 0xc2
je 0x4a4a65
cmp ecx, 0xe2
je 0x4a4a6d
cmp ecx, 0xd
ja 0x4a4a7c
mov edx, 0x2401
bt edx, ecx
jae 0x4a4a7c
jmp 0x4a4a9a
cmp byte [eax + 1], 0x85
jne 0x4a4a7c
jmp 0x4a4ac8
cmp byte [eax + 1], 0x80
jne 0x4a4a7c
mov al, byte [eax + 2]
and al, 0xfe
cmp al, 0xa8
je 0x4a4ac8
mov ecx, esi
call fcn.004a3f4d
mov ecx, esi
mov edx, ebx
push 0
call fcn.004a37f5
add esp, 4
test al, al
jne 0x4a4a3e
jmp 0x4a4b77
movzx ecx, cl
cmp ecx, 0xc
jle 0x4a4abf
cmp ecx, 0xd
je 0x4a4ac8
cmp ecx, 0xe2
je 0x4a4b12
cmp ecx, 0xc2
jne 0x4a4b21
cmp byte [eax + 1], 0x85
je 0x4a4ac8
jmp 0x4a4b21
test ecx, ecx
je 0x4a4ae8
cmp ecx, 0xa
jne 0x4a4b21
mov ecx, esi
mov edx, 2
push 0
call fcn.004a37f5
add esp, 4
test al, al
je 0x4a4b77
mov ecx, esi
call fcn.004a3fe5
test edi, edi
je 0x4a4afd
add edi, 0xfffffff8
push edi
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov edi, dword [esp + 4]
mov ecx, dword [esp]
mov edx, dword [esp + 0x2c]
mov eax, 0x4cc7d4
jmp 0x4a4449
cmp byte [eax + 1], 0x80
jne 0x4a4b21
mov al, byte [eax + 2]
and al, 0xfe
cmp al, 0xa8
je 0x4a4ac8
mov dword [esi], 3
mov dword [esi + 0x30], str.while_scanning_a_directive
mov eax, dword [esp + 8]
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [esi + 0x38], xmm0
movsd qword [esi + 0x40], xmm1
movsd xmm0, qword [esp + 0x20]
movsd qword [esi + 0x48], xmm0
mov dword [esi + 4], str.did_not_find_expected_comment_or_line_break
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esi + 0x18], xmm0
movsd qword [esi + 0x20], xmm1
movsd xmm0, qword [eax + 0x10]
movsd qword [esi + 0x28], xmm0
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
test ebx, ebx
je 0x4a4b98
add ebx, 0xfffffff8
push ebx
push 0
push dword [0x4e4100]
mov ebx, ecx
call sub.kernel32.dll_HeapFree
mov ecx, ebx
test ecx, ecx
je 0x4a4bad
add ecx, 0xfffffff8
push ecx
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
test edi, edi
je 0x4a4bc2
add edi, 0xfffffff8
push edi
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov edi, dword [esp + 4]
mov ecx, dword [esp]
mov edx, dword [esp + 0x2c]
jmp 0x4a4444