Function at 0x41237c
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
mov eax, 0x10ac
call fcn.00430870
sub esp, eax
mov dword [esp + 4], 0x4358c8
mov eax, dword [esp + 0x10c4]
mov dword [esp], eax
call sym._fopen
mov ebp, eax
test eax, eax
jne 0x41241f
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sym._strerror
lea edx, [esp + 0x1070]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10c4]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Could_not_open__s:__s
mov dword [esp], edx
call dbg.jv_string_fmt
mov eax, dword [esp + 0x1070]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1074]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1078]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x107c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10c0]
mov dword [esp], eax
call dbg.jv_invalid_with_msg
jmp 0x41275a
cmp dword [esp + 0x10c8], 0
je 0x412449
lea eax, [esp + 0x1060]
mov dword [esp + 4], 0x4358e0
mov dword [esp], eax
call dbg.jv_string
lea esi, [esp + 0x40]
jmp 0x412655
lea eax, [esp + 0x1060]
mov dword [esp], eax
call dbg.jv_array
mov dword [esp], 0
call dbg.jv_parser_new
mov ebx, eax
jmp 0x412440
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1000
mov dword [esp + 4], 1
lea eax, [esp + 0x60]
mov dword [esp], eax
call sym._fread
mov edi, eax
cmp dword [esp + 0x10c8], 0
je 0x412548
lea eax, [esp + 0x1080]
mov dword [esp + 8], edi
lea ecx, [esp + 0x60]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dbg.jv_string_sized
lea eax, [esp + 0x30]
mov edx, dword [esp + 0x1080]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x1084]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1088]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x108c]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1060]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x1064]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x1068]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x106c]
mov dword [esp + 0x10], edx
mov dword [esp], eax
call dbg.jv_string_concat
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1060], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1064], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1068], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x106c], eax
jmp 0x412655
mov dword [esp], ebp
call sym._feof
test eax, eax
sete al
movzx eax, al
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
mov dword [esp], ebx
call dbg.jv_parser_set_buf
lea edi, [esp + 0x30]
jmp 0x4125f9
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1060]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1064]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1068]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x106c]
mov dword [esp + 0x10], eax
mov dword [esp], edi
call dbg.jv_array_append
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1060], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1064], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1068], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x106c], eax
mov dword [esp + 4], ebx
mov dword [esp], esi
call dbg.jv_parser_next
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call sym._jv_get_kind
test eax, eax
jne 0x412579
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
call dbg.jv_free
mov dword [esp], ebp
call sym._feof
test eax, eax
jne 0x412671
mov dword [esp], ebp
call sym._ferror
test eax, eax
je 0x412468
cmp dword [esp + 0x10c8], 0
jne 0x412683
mov dword [esp], ebx
call dbg.jv_parser_free
mov dword [esp], ebp
call sym._ferror
mov ebx, eax
mov dword [esp], ebp
call sym._fclose
test ebx, ebx
je 0x41272c
mov eax, dword [esp + 0x1060]
mov dword [esp], eax
mov eax, dword [esp + 0x1064]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1068]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x106c]
mov dword [esp + 0xc], eax
call dbg.jv_free
lea eax, [esp + 0x1090]
mov ecx, dword [esp + 0x10c4]
mov dword [esp + 8], ecx
mov dword [esp + 4], str.Error_reading_from__s
mov dword [esp], eax
call dbg.jv_string_fmt
mov eax, dword [esp + 0x1090]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1094]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1098]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x109c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10c0]
mov dword [esp], eax
call dbg.jv_invalid_with_msg
jmp 0x41275a
mov eax, dword [esp + 0x1060]
mov ecx, dword [esp + 0x10c0]
mov dword [ecx], eax
mov eax, dword [esp + 0x1064]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x1068]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x106c]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x10c0]
add esp, 0x10ac
pop ebx
pop esi
pop edi
pop ebp
ret