Function at 0x4c4a10
Capabilities:
Read file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e96e1
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x2190
call fcn.004889d0
mov eax, dword [0x50b06c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov esi, ecx
mov dword [ebp - 0x2194], esi
mov ecx, dword [0x50f3f8]
test ecx, ecx
jne 0x4c4a85
call fcn.00477be0
test eax, eax
je 0x4c4a76
xor ecx, ecx
jmp 0x4c4a85
mov dword [0x50f3f8], 0x50f400
mov ecx, 0x50f400
sub esp, 8
lea edx, [ebp - 0x2150]
push 0
push esi
call fcn.0047e0e0
mov esi, eax
add esp, 0x10
mov dword [ebp - 0x2198], esi
test esi, esi
jns 0x4c4de5
cmp esi, 0xfffff43a
jg 0x4c4d4b
je 0x4c4d44
lea eax, [esi + 0xfff]
cmp eax, 0x42
ja case.0x4c4d56.3012
jmp dword [eax*4 + 0x4c510c]
mov eax, str.argument_list_too_long
jmp 0x4c4dbf
mov eax, str.permission_denied
jmp 0x4c4dbf
mov eax, str.address_already_in_use
jmp 0x4c4dbf
mov eax, str.address_not_available
jmp 0x4c4dbf
mov eax, str.resource_temporarily_unavailable
jmp 0x4c4dbf
mov eax, str.connection_already_in_progress
jmp 0x4c4dbf
mov eax, str.bad_file_descriptor
jmp 0x4c4dbf
mov eax, str.resource_busy_or_locked
jmp 0x4c4dbf
mov eax, str.operation_canceled
jmp 0x4c4dbf
mov eax, str.invalid_Unicode_character
jmp 0x4c4dbf
mov eax, str.software_caused_connection_abort
jmp 0x4c4dbf
mov eax, str.connection_refused
jmp 0x4c4dbf
mov eax, str.connection_reset_by_peer
jmp 0x4c4dbf
mov eax, str.destination_address_required
jmp 0x4c4dbf
mov eax, str.file_already_exists
jmp 0x4c4dbf
mov eax, str.bad_address_in_system_call_argument
jmp 0x4c4dbf
mov eax, str.file_too_large
jmp 0x4c4dbf
mov eax, str.host_is_unreachable
jmp 0x4c4dbf
mov eax, str.interrupted_system_call
jmp 0x4c4dbf
mov eax, str.invalid_argument
jmp 0x4c4dbf
mov eax, str.i_o_error
jmp 0x4c4dbf
mov eax, str.socket_is_already_connected
jmp 0x4c4dbf
mov eax, str.illegal_operation_on_a_directory
jmp 0x4c4dbf
mov eax, str.too_many_symbolic_links_encountered
jmp 0x4c4dbf
mov eax, str.too_many_open_files
jmp 0x4c4dbf
mov eax, str.message_too_long
jmp 0x4c4dbf
mov eax, str.name_too_long
jmp 0x4c4dbf
mov eax, str.network_is_down
jmp 0x4c4dbf
mov eax, str.network_is_unreachable
jmp 0x4c4dbf
mov eax, str.file_table_overflow
jmp 0x4c4dbf
mov eax, str.no_buffer_space_available
jmp 0x4c4dbf
mov eax, str.no_such_device
jmp 0x4c4dbf
mov eax, str.no_such_file_or_directory
jmp 0x4c4dbf
mov eax, str.not_enough_memory
jmp 0x4c4dbf
mov eax, str.machine_is_not_on_the_network
jmp 0x4c4dbf
mov eax, str.protocol_not_available
jmp 0x4c4dbf
mov eax, str.no_space_left_on_device
jmp 0x4c4dbf
mov eax, str.function_not_implemented
jmp 0x4c4dbf
mov eax, str.socket_is_not_connected
jmp 0x4c4dbf
mov eax, str.not_a_directory
jmp 0x4c4dbf
mov eax, str.directory_not_empty
jmp 0x4c4dbf
mov eax, str.socket_operation_on_non_socket
jmp 0x4c4dbf
mov eax, str.operation_not_supported_on_socket
jmp 0x4c4dbf
mov eax, str.operation_not_permitted
jmp 0x4c4dbf
mov eax, str.broken_pipe
jmp 0x4c4dbf
mov eax, str.protocol_error
jmp 0x4c4dbf
mov eax, str.protocol_not_supported
jmp 0x4c4dbf
mov eax, str.protocol_wrong_type_for_socket
jmp 0x4c4dbf
mov eax, str.result_too_large
jmp 0x4c4dbf
mov eax, str.read_only_file_system
jmp 0x4c4dbf
mov eax, str.cannot_send_after_transport_endpoint_shutdown
jmp 0x4c4dbf
mov eax, str.invalid_seek
jmp 0x4c4dbf
mov eax, str.no_such_process
jmp 0x4c4dbf
mov eax, str.connection_timed_out
jmp 0x4c4dbf
mov eax, str.text_file_is_busy
jmp 0x4c4dbf
mov eax, str.cross_device_link_not_permitted
jmp 0x4c4dbf
mov eax, str.unknown_error
jmp 0x4c4dbf
mov eax, str.end_of_file
jmp 0x4c4dbf
mov eax, str.no_such_device_or_address
jmp 0x4c4dbf
mov eax, str.too_many_links
jmp 0x4c4dbf
mov eax, str.host_is_down
jmp 0x4c4dbf
mov eax, str.remote_I_O_error
jmp 0x4c4dbf
mov eax, str.inappropriate_ioctl_for_device
jmp 0x4c4dbf
mov eax, str.resolved_protocol_is_unknown
jmp 0x4c4dbf
lea eax, [esi + 0xbc5]
cmp eax, 0xd
ja case.0x4c4d56.3012
jmp dword [eax*4 + 0x4c5218]
mov eax, str.address_family_not_supported
jmp 0x4c4dbf
mov eax, str.temporary_failure
jmp 0x4c4dbf
mov eax, str.bad_ai_flags_value
jmp 0x4c4dbf
mov eax, str.invalid_value_for_hints
jmp 0x4c4dbf
mov eax, str.request_canceled
jmp 0x4c4dbf
mov eax, str.permanent_failure
jmp 0x4c4dbf
mov eax, str.ai_family_not_supported
jmp 0x4c4dbf
mov eax, str.out_of_memory
jmp 0x4c4dbf
mov eax, str.no_address
jmp 0x4c4dbf
mov eax, str.unknown_node_or_service
jmp 0x4c4dbf
mov eax, str.argument_buffer_overflow
jmp 0x4c4dbf
mov eax, str.service_not_available_for_socket_type
jmp 0x4c4dbf
mov eax, str.socket_type_not_supported
jmp 0x4c4dbf
mov ecx, esi
call fcn.004765c0
push eax
push dword [ebp - 0x2194]
push str.unable_to_open__s:__s_n
push 2
call fcn.004a7829
add esp, 4
push eax
call fcn.0040d0f0
add esp, 0x10
xor al, al
jmp 0x4c50ee
lea ecx, [ebp - 0x2150]
call fcn.0047df80
push 0x4f9640
push esi
call fcn.004afc75
push eax
lea ecx, [ebp - 0x2018]
mov dword [ebp - 0x2190], eax
push 0x2000
mov eax, ecx
mov dword [ebp - 0x218c], ecx
push 1
push eax
mov dword [ebp - 0x2188], 0x2000
mov dword [ebp - 0x2184], 0
mov dword [ebp - 0x2180], ecx
mov dword [ebp - 0x217c], 0
mov byte [ebp - 0x2174], 0
mov dword [ebp - 0x2178], 0
call fcn.004a7b76
mov edx, dword [ebp - 0x218c]
add esp, 0x18
mov dword [ebp - 0x217c], eax
mov dword [ebp - 0x2180], edx
lea ecx, [edx - 1]
add ecx, eax
mov dword [ebp - 0x2184], ecx
cmp eax, dword [ebp - 0x2188]
jae 0x4c4e8b
mov byte [eax + edx], 0
inc dword [ebp - 0x2184]
mov byte [ebp - 0x2174], 1
mov eax, dword [edi + 0x18]
xorps xmm0, xmm0
mov dword [ebp - 0x2170], eax
movups xmmword [ebp - 0x216c], xmm0
mov dword [ebp - 0x215c], 0x100
mov dword [ebp - 4], 0
mov dword [ebp - 0x219c], edi
lea eax, [ebp - 0x2170]
mov dword [ebp - 0x2158], 0
mov dword [ebp - 0x2154], 0
mov dword [ebp - 0x21a0], eax
lea eax, [ebp - 0x2190]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x2170]
call fcn.0040d5e0
mov ecx, dword [ebp - 0x2158]
test ecx, ecx
jne 0x4c4f7e
mov ecx, dword [ebp - 0x2180]
mov al, byte [ecx]
test al, al
jne 0x4c4f1a
mov eax, dword [ebp - 0x2178]
sub eax, dword [ebp - 0x218c]
add eax, ecx
mov ecx, 1
jmp 0x4c4f72
push edi
lea eax, [ebp - 0x2190]
push eax
lea ecx, [ebp - 0x2170]
call fcn.0040d6e0
mov ecx, dword [ebp - 0x2158]
test ecx, ecx
jne 0x4c4f7e
lea eax, [ebp - 0x2190]
push eax
lea ecx, [ebp - 0x2170]
call fcn.0040d5e0
mov ecx, dword [ebp - 0x2158]
test ecx, ecx
jne 0x4c4f7e
mov edx, dword [ebp - 0x2180]
mov al, byte [edx]
test al, al
je 0x4c4f7e
mov eax, dword [ebp - 0x2178]
mov ecx, 2
sub eax, dword [ebp - 0x218c]
add eax, edx
mov dword [ebp - 0x2154], eax
mov dword [ebp - 0x2158], ecx
mov eax, dword [ebp - 0x2168]
mov dword [ebp - 0x2164], eax
mov eax, dword [ebp - 0x2154]
mov dword [edi + 0x30], ecx
mov dword [edi + 0x34], eax
test ecx, ecx
jne 0x4c4fbc
mov esi, dword [edi + 0x24]
mov ecx, edi
add esi, 0xfffffff0
mov dword [edi + 0x24], esi
call fcn.004012b0
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [edi], xmm0
mov word [esi + 0xe], ax
mov esi, dword [ebp - 0x2198]
lea ecx, [ebp - 0x219c]
call fcn.0040d560
mov dword [ebp - 4], 0xffffffff
push dword [ebp - 0x2168]
call fcn.004a6274
add esp, 4
push 1
push dword [ebp - 0x216c]
call fcn.00487eb6
mov ecx, dword [0x50f3f8]
add esp, 8
test ecx, ecx
jne 0x4c5012
call fcn.00477be0
test eax, eax
je 0x4c5003
xor ecx, ecx
jmp 0x4c5012
mov dword [0x50f3f8], 0x50f400
mov ecx, 0x50f400
push ecx
push esi
lea edx, [ebp - 0x2150]
call fcn.0047e200
add esp, 8
lea ecx, [ebp - 0x2150]
call fcn.0047df80
mov eax, dword [edi + 0x30]
test eax, eax
je 0x4c50e6
cmp eax, 0x11
ja case.default.0x4c5041
jmp dword [eax*4 + 0x4c5250]
mov eax, 0x4fe94c
jmp 0x4c50cb
mov eax, str.The_document_is_empty.
jmp 0x4c50cb
mov eax, str.The_document_root_must_not_be_followed_by_other_values.
jmp 0x4c50cb
mov eax, str.Invalid_value.
jmp 0x4c50cb
mov eax, str.Missing_a_name_for_object_member.
jmp 0x4c50cb
mov eax, str.Missing_a_colon_after_a_name_of_object_member.
jmp 0x4c50cb
mov eax, str.Missing_a_comma_or__after_an_object_member.
jmp 0x4c50cb
mov eax, str.Missing_a_comma_or___after_an_array_element.
jmp 0x4c50cb
mov eax, str.Incorrect_hex_digit_after_u_escape_in_string.
jmp 0x4c50cb
mov eax, str.The_surrogate_pair_in_string_is_invalid.
jmp 0x4c50cb
mov eax, str.Invalid_escape_character_in_string.
jmp 0x4c50cb
mov eax, str.Missing_a_closing_quotation_mark_in_string.
jmp 0x4c50cb
mov eax, str.Invalid_encoding_in_string.
jmp 0x4c50cb
mov eax, str.Number_too_big_to_be_stored_in_double.
jmp 0x4c50cb
mov eax, str.Miss_fraction_part_in_number.
jmp 0x4c50cb
mov eax, str.Miss_exponent_in_number.
jmp 0x4c50cb
mov eax, str.Terminate_parsing_due_to_Handler_error.
jmp 0x4c50cb
mov eax, str.Unspecific_syntax_error.
jmp 0x4c50cb
mov eax, str.Unknown_error.
push eax
push dword [edi + 0x34]
push dword [ebp - 0x2194]
push str._s__d_:__s_n
call fcn.0040d110
add esp, 0x10
xor al, al
jmp 0x4c50ee
cmp word [edi + 0xe], 3
sete al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004879f1
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret