Function at 0x41b390
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xdc
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._open
cmp eax, 0xffffffff
je 0x41b610
mov esi, eax
lea eax, [ebp - 0x40]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [sym.imp.msvcrt.dll__fstat]
cmp eax, 0xffffffff
je 0x41b5b1
movzx eax, word [ebp - 0x3a]
and ax, 0xf000
cmp ax, 0x4000
je 0x41b5b1
mov dword [esp + 4], 0x4768cb
mov dword [esp], esi
call sym._fdopen
test eax, eax
mov ebx, eax
je 0x41b8a0
mov esi, dword [ebp + 0x10]
lea eax, [ebp - 0x70]
test esi, esi
jne 0x41b680
mov dword [esp], eax
call sym._jv_array
mov dword [esp], 0
call dbg.jv_parser_new
mov dword [ebp - 0xac], eax
mov eax, 0x1010
call fcn.00462ea0
sub esp, eax
lea edi, [esp + 0x24]
mov esi, esi
lea edi, [edi]
mov dword [esp], ebx
call sym._feof
test eax, eax
jne 0x41b520
mov dword [esp], ebx
call sym._ferror
test eax, eax
jne 0x41b520
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x1000
mov dword [esp + 4], 1
mov dword [esp], edi
call sym._fread
test eax, eax
mov esi, eax
mov dword [ebp - 0x80], 0
je 0x41b440
lea eax, [ebp - 0x80]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
lea eax, [edi + esi - 1]
mov dword [esp], eax
call dbg.jvp_utf8_backtrack
test eax, eax
je 0x41b4af
mov ecx, dword [ebp - 0x80]
test ecx, ecx
jg 0x41b831
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x41b6a0
mov eax, dword [ebp - 0x70]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0xa8]
mov dword [esp], eax
call dbg.jv_string_append_buf
mov eax, dword [ebp - 0xa8]
mov dword [esp], ebx
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x64], eax
call sym._feof
test eax, eax
je 0x41b450
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x41b81e
mov dword [esp], ebx
call sym._ferror
mov dword [esp], ebx
mov esi, eax
call sym._fclose
or eax, esi
mov eax, dword [ebp - 0x70]
je 0x41b880
mov dword [esp], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 0xc], eax
call dbg.jv_free
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x50]
mov dword [esp + 4], str.Error_reading_from__s
mov dword [esp], eax
mov dword [esp + 8], ecx
call dbg.jv_string_fmt
mov eax, dword [ebp - 0x50]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._jv_invalid_with_msg
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], esi
call sym._close
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x80]
mov dword [esp + 0xc], str.Its_a_directory
mov dword [esp + 4], str.Could_not_open__s:__s
mov dword [esp], eax
mov dword [esp + 8], ecx
call dbg.jv_string_fmt
mov eax, dword [ebp - 0x80]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x78]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x74]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._jv_invalid_with_msg
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x90]
mov dword [esp + 4], str.Could_not_open__s:__s
mov dword [esp], edx
mov dword [esp + 8], eax
call dbg.jv_string_fmt
mov eax, dword [ebp - 0x90]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x88]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x84]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._jv_invalid_with_msg
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x4768cd
mov dword [esp], eax
call sym._jv_string
mov dword [ebp - 0xac], 0
jmp 0x41b427
mov dword [esp], ebx
call sym._feof
test eax, eax
mov dword [esp + 8], esi
mov dword [esp + 4], edi
sete al
lea esi, [ebp - 0x50]
movzx eax, al
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xac]
mov dword [esp], eax
call dbg.jv_parser_set_buf
mov dword [ebp - 0xb4], edi
mov dword [ebp - 0xb0], ebx
mov edi, dword [ebp - 0xac]
jmp 0x41b74b
mov eax, dword [ebp - 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 0x20], eax
mov eax, dword [ebp - 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0xa8]
mov dword [esp], eax
call dbg.jv_array_append
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x64], eax
mov dword [esp + 4], edi
mov dword [esp], esi
call dbg.jv_parser_next
mov ebx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ecx
mov dword [st.st_dev], edx
mov dword [st.st_ino], eax
call sym._jv_get_kind
test eax, eax
jne 0x41b6e1
mov edx, dword [ebp - 0x50]
lea eax, [ebp - 0x60]
mov ebx, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x4c]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x48]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
mov dword [esp + 0x10], edx
call sym._jv_copy
mov eax, dword [ebp - 0x60]
mov dword [esp], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x54]
mov dword [esp + 0xc], eax
call dbg.jv_invalid_has_msg
test eax, eax
je 0x41b440
mov eax, dword [ebp - 0x70]
mov dword [esp], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 0xc], eax
call dbg.jv_free
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0xac]
mov dword [esp], eax
call dbg.jv_parser_free
jmp 0x41b52b
mov dword [esp], ebx
call sym._feof
test eax, eax
jne 0x41b4af
mov dword [esp], ebx
call sym._ferror
test eax, eax
jne 0x41b4af
mov eax, dword [ebp - 0x80]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
lea eax, [edi + esi]
mov dword [esp], eax
call sym._fread
add esi, eax
jmp 0x41b4af
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov eax, dword [ebp - 0x6c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x68]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x64]
mov dword [ecx + 0xc], eax
jmp 0x41b602
mov dword [esp], esi
call sym._close
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x70]
mov dword [esp + 4], str.Could_not_open__s:__s
mov dword [esp], edx
mov dword [esp + 8], eax
call dbg.jv_string_fmt
mov eax, dword [ebp - 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._jv_invalid_with_msg
jmp 0x41b602