Function at 0x405f10
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
mov esi, ecx
mov ecx, 0xfa0
push ebx
sub esp, 0x3c
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0x4342b8
call sym._mnewString_4
mov dword [esp + 0x28], eax
mov ebx, eax
mov dword [esp + 0x2c], edx
test eax, eax
jle 0x406040
mov dword [esp], 0x4331ac
call sym.___emutls_get_address
mov edi, eax
lea esi, [esi]
nop
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xfa0
add eax, 4
mov dword [esp + 4], 1
mov dword [esp], eax
call sym._fread
mov ebx, eax
cmp eax, 0xfa0
je 0x405fd8
mov dword [esp], esi
call sym._ferror
test eax, eax
je 0x405fa7
mov ecx, esi
call sym._checkErr__stdZsyncio_u162_4.part.0
cmp byte [edi], 0
je 0x4060c0
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x405fc4
test dword [eax], 0x40000000
je 0x4060a0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [edi], 0
jne 0x405fb0
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x20]
call sym._prepareAdd_8
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
test ebx, ebx
jle 0x406040
mov edx, ebx
add edx, 1
jo 0x40605c
test edx, edx
js 0x406068
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
add eax, 4
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea ecx, [ebp + ecx + 4]
mov dword [esp], ecx
call sym._memcpy
add ebx, dword [esp + 0x20]
jo 0x40605c
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x28]
test ebx, ebx
jg 0x405f68
lea esi, [esi]
lea esi, [esi]
sub ebx, 1
mov dword [esp], 0
mov dword [esp + 4], ebx
call sym._raiseIndexError2
mov eax, dword [esp + 0x2c]
jmp 0x405fb4
call sym._raiseOverflow
jmp 0x40602a
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call sym._raiseRangeErrorI
jmp 0x40602a
mov dword [esp], eax
call sym._deallocShared
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
test ebx, ebx
js 0x406138
mov edx, ebx
lea ecx, [esp + 0x28]
call sym._setLengthStrV2_8
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x20]
call sym._prepareAdd_8
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
test ebx, ebx
jle 0x405fb4
mov edx, ebx
add edx, 1
jo 0x4061ad
test edx, edx
js 0x406170
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
add eax, 4
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea ecx, [esi + ecx + 4]
mov dword [esp], ecx
call sym._memcpy
add ebx, dword [esp + 0x20]
jo 0x4061ad
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x2c]
jmp 0x405fb4
mov dword [esp], ebx
sar ebx, 0x1f
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], ebx
call sym._raiseRangeErrorI
mov eax, dword [esp + 0x2c]
jmp 0x405fb4
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call sym._raiseRangeErrorI
mov eax, dword [esp + 0x2c]
jmp 0x405fb4
call sym._raiseOverflow
jmp 0x405fb0