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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
call 0x4f13de
pop eax
mov ebx, edx
mov edi, ecx
mov dword [esp + 0x44], eax
call fcn.004f0ac4
test al, al
je 0x4f1e17
mov byte [edi + 0xec], 0
push 0x10
pop esi
mov ecx, esi
xor edx, edx
call fcn.004e7c40
lea ecx, [esp + 0xc]
lea edx, [esp + 8]
xorps xmm0, xmm0
mov dword [ecx - 8], eax
mov dword [ecx], eax
lea ecx, [eax + 0x10]
movsd qword [eax + 8], xmm0
movsd qword [eax], xmm0
mov dword [edx], ecx
mov ecx, esi
xor edx, edx
call fcn.004e7c40
lea edx, [esp + 0x3c]
lea ecx, [eax + 0x10]
xorps xmm0, xmm0
mov dword [edx - 8], eax
mov dword [edx], eax
mov dword [edx - 4], ecx
mov ecx, esi
xor edx, edx
movsd qword [eax + 8], xmm0
movsd qword [eax], xmm0
call fcn.004e7c40
lea edx, [esp + 0x24]
lea ecx, [eax + 0x10]
xorps xmm0, xmm0
mov dword [edx - 8], eax
mov dword [edx], eax
mov dword [edx - 4], ecx
mov ecx, esi
xor edx, edx
movsd qword [eax + 8], xmm0
movsd qword [eax], xmm0
call fcn.004e7c40
xorps xmm0, xmm0
lea edx, [esp + 0x30]
lea ecx, [eax + 0x10]
mov dword [edx - 8], eax
mov dword [edx], eax
mov dword [edx - 4], ecx
movsd qword [eax + 8], xmm0
movsd qword [eax], xmm0
lea eax, [edi + 0xa0]
mov ecx, edi
movsd xmm0, qword [edi + 0xb0]
mov dword [esp + 0x40], eax
movsd qword [esp + 0x60], xmm0
movsd xmm0, qword [edi + 0xa0]
movsd xmm1, qword [edi + 0xa8]
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x50], xmm0
call fcn.004ef616
xor eax, eax
test bl, bl
mov dword [esp + 0x48], ebx
setne al
lea eax, [eax + eax*4 + 0x22]
mov dword [esp + 0x4c], eax
push 4
pop ebx
mov ecx, edi
mov edx, ebx
push 0
call fcn.004eee34
pop ecx
test al, al
je 0x4f1de9
mov eax, dword [edi + 0xb0]
mov ecx, dword [edi + 0x70]
or eax, dword [edi + 0xb4]
movzx eax, byte [ecx]
je 0x4f1a55
test eax, eax
je 0x4f1ed5
mov ecx, edi
push 2
pop edx
push 0
call fcn.004eee34
pop ecx
test al, al
je 0x4f1de9
mov eax, dword [edi + 0x70]
movzx ecx, byte [eax]
cmp ecx, 0xc2
je 0x4f1562
cmp ecx, 0xe2
je 0x4f156d
lea edx, [ecx - 9]
xor ebx, ebx
cmp edx, 0x17
ja 0x4f1559
mov esi, 0x800013
bt esi, edx
jb 0x4f1b10
test ecx, ecx
jne 0x4f1582
jmp 0x4f1b10
cmp byte [eax + 1], 0x85
jne 0x4f1582
jmp 0x4f1a71
cmp byte [eax + 1], 0x80
jne 0x4f1582
mov dl, byte [eax + 2]
and dl, 0xfe
cmp dl, 0xa8
je 0x4f1a71
cmp byte [esp + 0x48], 0
je 0x4f15d6
cmp ecx, 0x27
jne 0x4f15e4
cmp byte [eax + 1], 0x27
jne 0x4f1a71
mov eax, dword [esp + 0xc]
lea ecx, [eax + 5]
cmp ecx, dword [esp + 8]
jb 0x4f15bc
lea eax, [esp + 8]
lea ecx, [esp + 4]
lea edx, [esp + 0xc]
push eax
call fcn.004f21f2
pop eax
mov eax, dword [esp + 0xc]
lea ecx, [eax + 1]
mov dword [esp + 0xc], ecx
mov ecx, edi
mov byte [eax], 0x27
call fcn.004ef616
mov ecx, edi
call fcn.004ef616
jmp 0x4f15ef
cmp ecx, 0x5c
je 0x4f160d
cmp ecx, 0x22
je 0x4f1a71
mov ecx, edi
lea edx, [esp + 4]
call fcn.004ef98f
mov ebx, edi
mov ecx, ebx
push 2
pop edx
push 0
call fcn.004eee34
pop ecx
test al, al
mov edi, ebx
jne 0x4f152b
jmp 0x4f1de9
movzx ecx, byte [eax + 1]
cmp ecx, 0xc2
je 0x4f1634
cmp ecx, 0xe2
je 0x4f163f
cmp ecx, 0xd
je 0x4f1aeb
cmp ecx, 0xa
jne 0x4f1652
jmp 0x4f1aeb
cmp byte [eax + 2], 0x85
jne 0x4f1652
jmp 0x4f1aeb
cmp byte [eax + 2], 0x80
jne 0x4f1652
mov al, byte [eax + 3]
and al, 0xfe
cmp al, 0xa8
je 0x4f1aeb
mov eax, dword [esp + 0xc]
add eax, 5
cmp eax, dword [esp + 8]
jb 0x4f1678
lea ecx, [esp + 4]
lea eax, [esp + 8]
lea edx, [esp + 0xc]
push eax
call fcn.004f21f2
pop eax
mov eax, dword [edi + 0x70]
mov cl, byte [eax + 1]
movzx ecx, cl
mov eax, str.found_unknown_escape_character
mov esi, str.while_parsing_a_quoted_scalar
lea edx, [ecx - 0x5c]
cmp edx, 0x1c
ja 0x4f16be
mov ecx, dword [edx*4 + 0x4f1fc0]
xor ebx, ebx
add ecx, dword [esp + 0x44]
push 2
pop edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], 0
jmp ecx
lea edx, [ecx - 0x4c]
cmp edx, 9
jbe 0x4f1702
cmp ecx, 9
je 0x4f173e
cmp ecx, 0x20
je 0x4f185c
cmp ecx, 0x22
je 0x4f186c
cmp ecx, 0x2f
je 0x4f184c
cmp ecx, 0x30
jne 0x4f1d9b
mov eax, dword [esp + 0xc]
lea ecx, [eax + 1]
mov dword [esp + 0xc], ecx
mov byte [eax], 0
jmp 0x4f187a
mov ecx, dword [edx*4 + 0x4f1f98]
add ecx, dword [esp + 0x44]
jmp ecx
mov eax, dword [esp + 0xc]
lea ecx, [eax + 1]
mov dword [esp + 0xc], ecx
mov byte [eax], 9
jmp 0x4f187a
mov eax, dword [esp + 0xc]
lea ecx, [eax + 1]
mov dword [esp + 0xc], ecx
mov byte [eax], 0x2f
jmp 0x4f187a
mov eax, dword [esp + 0xc]
lea ecx, [eax + 1]
mov dword [esp + 0xc], ecx
mov byte [eax], 0x20
jmp 0x4f187a
mov eax, dword [esp + 0xc]
lea ecx, [eax + 1]
mov dword [esp + 0xc], ecx
mov byte [eax], 0x22
mov dword [esp + 0x14], 0
mov bl, 1
mov dword [esp + 0x10], 0
mov ecx, edi
call fcn.004ef616
mov ecx, edi
call fcn.004ef616
test bl, bl
mov ebx, edi
jne 0x4f15f1
mov edx, dword [esp + 0x14]
mov ecx, ebx
push dword [esp + 0x10]
call fcn.004eee34
pop ecx
test al, al
mov edi, ebx
je 0x4f1de9
mov dword [esp + 0x18], edi
xor edi, edi
xor esi, esi
xor ebx, ebx
cmp edi, dword [esp + 0x14]
mov eax, esi
sbb eax, dword [esp + 0x10]
jae 0x4f1939
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x70]
mov cl, byte [eax + edi]
mov eax, str.did_not_find_expected_hexadecimal_number
cmp cl, 0x2f
jbe 0x4f1d92
mov dl, 0xd0
cmp cl, 0x3a
jb 0x4f1913
cmp cl, 0x41
jb 0x4f1d92
mov dl, 0xc9
cmp cl, 0x47
jb 0x4f1913
mov ch, cl
mov dl, 0xa9
add ch, 0x9f
cmp ch, 5
ja 0x4f1d92
add dl, cl
shl ebx, 4
movzx edx, dl
mov ecx, ebx
call fcn.004e80dc
mov ebx, eax
mov ecx, edi
mov edx, esi
push 0
push 1
call fcn.004e7e84
pop ecx
pop ecx
mov edi, eax
mov esi, edx
jmp 0x4f18c8
cmp ebx, 0x10ffff
mov eax, str.found_invalid_Unicode_character_escape_code
mov esi, str.while_parsing_a_quoted_scalar
ja 0x4f1f8c
mov edi, dword [esp + 0x18]
mov ecx, ebx
and ecx, 0xfffff800
cmp ecx, 0xd800
je 0x4f1d9b
cmp ebx, 0x80
jae 0x4f197f
mov esi, dword [esp + 0xc]
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
jmp 0x4f1a1f
cmp ebx, 0x800
jae 0x4f1997
mov esi, dword [esp + 0xc]
mov edx, ebx
mov ecx, 0xc0
shr edx, 6
jmp 0x4f19f5
mov esi, dword [esp + 0xc]
cmp ebx, 0x10000
mov edx, ebx
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
jae 0x4f19b6
shr edx, 0xc
mov ecx, 0xe0
jmp 0x4f19dd
shr edx, 0x12
mov ecx, 0xf0
call fcn.004e80dc
mov byte [esi], al
mov edx, ebx
mov ecx, pe_nt_image_headers32
mov esi, dword [esp + 0xc]
shr edx, 0xc
and edx, 0x3f
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
call fcn.004e80dc
mov byte [esi], al
mov edx, ebx
mov ecx, pe_nt_image_headers32
mov esi, dword [esp + 0xc]
shr edx, 6
and edx, 0x3f
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
call fcn.004e80dc
mov byte [esi], al
and ebx, 0x3f
mov ecx, pe_nt_image_headers32
mov esi, dword [esp + 0xc]
mov edx, ebx
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
call fcn.004e80dc
mov ebx, eax
mov byte [esi], bl
xor esi, esi
xor edi, edi
cmp esi, dword [esp + 0x14]
mov eax, edi
mov ebx, dword [esp + 0x18]
sbb eax, dword [esp + 0x10]
jae 0x4f15f1
mov ecx, ebx
call fcn.004ef616
mov ecx, esi
mov edx, edi
push 0
push 1
call fcn.004e7e84
pop ecx
pop ecx
mov esi, eax
mov edi, edx
jmp 0x4f1a25
mov esi, str.while_scanning_a_quoted_scalar
cmp eax, 0x2d
je 0x4f1a8e
cmp eax, 0x2e
je 0x4f1a78
test eax, eax
jne 0x4f1516
jmp 0x4f1f82
xor ebx, ebx
jmp 0x4f1b10
cmp byte [ecx + 1], 0x2e
jne 0x4f1516
cmp byte [ecx + 2], 0x2e
jne 0x4f1516
jmp 0x4f1aa2
cmp byte [ecx + 1], 0x2d
jne 0x4f1516
cmp byte [ecx + 2], 0x2d
jne 0x4f1516
movzx edx, byte [ecx + 3]
mov eax, str.found_unexpected_document_indicator
cmp edx, 0xc2
je 0x4f1c64
cmp edx, 0xe2
je 0x4f1c73
lea ecx, [edx - 9]
cmp ecx, 0x17
ja 0x4f1ade
mov esi, 0x800013
bt esi, ecx
mov esi, str.while_scanning_a_quoted_scalar
jb 0x4f1d9b
test edx, edx
jne 0x4f1516
jmp 0x4f1d9b
mov ecx, edi
push 3
pop edx
push 0
call fcn.004eee34
pop ecx
test al, al
je 0x4f1de9
mov ecx, edi
call fcn.004ef616
mov ecx, edi
call fcn.004ef6a8
mov bl, 1
xor edx, edx
mov ecx, edi
inc edx
push 0
call fcn.004eee34
pop ecx
test al, al
je 0x4f1de9
mov eax, dword [edi + 0x70]
mov ecx, dword [esp + 0x4c]
cmp byte [eax], cl
je 0x4f1ee4
xor edx, edx
mov ecx, edi
inc edx
push 0
call fcn.004eee34
pop ecx
test al, al
je 0x4f1de9
mov eax, dword [edi + 0x70]
movzx ecx, byte [eax]
cmp ecx, 9
je 0x4f1b82
cmp ecx, 0xa
je 0x4f1ba3
cmp ecx, 0xd
je 0x4f1ba3
cmp ecx, 0x20
je 0x4f1b82
cmp ecx, 0xe2
je 0x4f1b94
cmp ecx, 0xc2
jne 0x4f1c03
cmp byte [eax + 1], 0x85
je 0x4f1ba3
jmp 0x4f1c03
mov ecx, edi
test bl, 1
jne 0x4f1bf9
lea edx, [esp + 0x28]
call fcn.004ef98f
jmp 0x4f1b34
cmp byte [eax + 1], 0x80
jne 0x4f1c03
mov al, byte [eax + 2]
and al, 0xfe
cmp al, 0xa8
jne 0x4f1c03
mov ecx, edi
push 2
pop edx
push 0
call fcn.004eee34
pop ecx
test al, al
je 0x4f1de9
test bl, 1
je 0x4f1bcd
mov ecx, edi
lea edx, [esp + 0x1c]
call fcn.004f2034
jmp 0x4f1b34
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
sub ecx, eax
mov dword [esp + 0x30], eax
push ecx
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, edi
lea edx, [esp + 0x34]
call fcn.004f2034
mov bl, 1
jmp 0x4f1b34
call fcn.004ef616
jmp 0x4f1b34
test bl, 1
je 0x4f1ce1
mov esi, dword [esp + 0x34]
mov dword [esp + 0x18], edi
cmp byte [esi], 0xa
jne 0x4f1d1f
mov edi, dword [esp + 0x1c]
cmp byte [edi], 0
je 0x4f1c91
lea eax, [esp + 0x24]
lea ecx, [esp + 4]
lea edx, [esp + 0xc]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.004f2192
add esp, 0xc
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x20]
sub eax, edi
push eax
push 0
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
mov edi, dword [esp + 0x18]
push 4
pop ebx
jmp 0x4f1cc6
cmp byte [ecx + 4], 0x85
jne 0x4f1516
jmp 0x4f1d9b
cmp byte [ecx + 4], 0x80
jne 0x4f1516
mov cl, byte [ecx + 5]
and cl, 0xfe
cmp cl, 0xa8
jne 0x4f1516
jmp 0x4f1d9b
mov eax, dword [esp + 0xc]
lea ecx, [eax + 5]
cmp ecx, dword [esp + 8]
push 4
pop ebx
jb 0x4f1cb8
lea eax, [esp + 8]
lea ecx, [esp + 4]
lea edx, [esp + 0xc]
push eax
call fcn.004f21f2
pop eax
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
lea ecx, [eax + 1]
mov dword [esp + 0xc], ecx
mov byte [eax], 0x20
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x38]
sub eax, esi
push eax
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
jmp 0x4f14e2
lea eax, [esp + 0x30]
lea ecx, [esp + 4]
lea edx, [esp + 0xc]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.004f2192
add esp, 0xc
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
sub ecx, eax
mov dword [esp + 0x30], eax
push ecx
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
jmp 0x4f14df
lea edi, [esp + 0xc]
lea eax, [esp + 0x3c]
lea ecx, [esp + 4]
mov edx, edi
push eax
lea eax, [esp + 0x38]
push eax
lea ebx, [esp + 0x10]
push ebx
call fcn.004f2192
add esp, 0xc
lea eax, [esp + 0x24]
lea ecx, [esp + 4]
mov edx, edi
push eax
lea eax, [esp + 0x20]
push eax
push ebx
call fcn.004f2192
add esp, 0xc
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
sub eax, esi
push eax
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x20]
sub eax, edi
push eax
push 0
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
mov edi, dword [esp + 0x18]
jmp 0x4f14df
mov edi, dword [esp + 0x18]
mov esi, str.while_parsing_a_quoted_scalar
mov dword [edi], 3
mov dword [edi + 0x30], esi
mov ecx, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
movsd qword [edi + 0x38], xmm0
movsd qword [edi + 0x40], xmm1
movsd xmm0, qword [esp + 0x60]
movsd qword [edi + 0x48], xmm0
mov dword [edi + 4], eax
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [edi + 0x18], xmm0
movsd qword [edi + 0x20], xmm1
movsd xmm0, qword [ecx + 0x10]
movsd qword [edi + 0x28], xmm0
mov ecx, dword [esp + 4]
call fcn.004e7d57
mov ecx, dword [esp + 0x34]
call fcn.004e7d57
mov ecx, dword [esp + 0x1c]
call fcn.004e7d57
mov ecx, dword [esp + 0x28]
call fcn.004e7d57
mov eax, 0x519d48
cmp byte [eax], 0
je 0x4f1e21
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [edi + 0xcc]
lea esi, [edi + 0xcc]
cmp eax, dword [edi + 0xc4]
jne 0x4f1e56
lea eax, [edi + 0xc4]
lea ecx, [edi + 0xc0]
lea edx, [edi + 0xc8]
push eax
push esi
call fcn.004e80eb
pop eax
pop ecx
mov eax, dword [edi + 0xcc]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [eax], 0x15
and dword [eax + 4], 0
mov dword [eax + 8], ecx
and dword [eax + 0xc], 0
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], ebx
and dword [eax + 0x1c], 0
movsd xmm0, qword [esp + 0x90]
movsd qword [eax + 0x30], xmm0
movsd xmm0, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
movsd qword [eax + 0x28], xmm1
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x70]
movsd qword [eax + 0x38], xmm0
movsd qword [eax + 0x40], xmm1
movsd xmm0, qword [esp + 0x78]
movsd qword [eax + 0x48], xmm0
add dword [esi], 0x50
mov al, 1
jmp 0x4f1e19
mov eax, str.found_unexpected_end_of_stream
mov esi, str.while_scanning_a_quoted_scalar
jmp 0x4f1d9b
mov ecx, edi
call fcn.004ef616
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 4]
movzx ebx, byte [esp + 0x48]
movsd xmm2, qword [esp + 0x50]
movsd xmm0, qword [eax + 0x10]
mov dword [esp + 0x18], ecx
xor ebx, 3
movsd qword [esp + 0x78], xmm0
movsd xmm1, qword [eax + 8]
movsd xmm0, qword [eax]
mov eax, dword [esp + 0xc]
movsd qword [esp + 0x80], xmm2
movsd qword [esp + 0x70], xmm1
movsd xmm1, qword [esp + 0x58]
sub eax, ecx
mov ecx, dword [esp + 0x34]
movsd qword [esp + 0x68], xmm0
mov dword [esp + 0x14], eax
sar eax, 0x1f
mov dword [esp + 0x10], eax
movsd qword [esp + 0x88], xmm1
movsd xmm1, qword [esp + 0x60]
movsd qword [esp + 0x90], xmm1
call fcn.004e7d57
mov ecx, dword [esp + 0x1c]
call fcn.004e7d57
mov ecx, dword [esp + 0x28]
call fcn.004e7d57
mov eax, 0x518f2f
jmp 0x4f1e12
mov eax, str.found_unexpected_end_of_stream
jmp 0x4f1d9b
mov edi, dword [esp + 0x18]
jmp 0x4f1d9b