Function at 0x4076a0
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], 0x4dc394
call sym._mnewString_4
mov dword [esp + 0x28], eax
mov ebx, eax
mov dword [esp + 0x2c], edx
test eax, eax
jle 0x4077d0
mov dword [esp], 0x4db1c8
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 0x407768
mov dword [esp], esi
call sym._ferror
test eax, eax
je 0x407737
mov ecx, esi
call sym._checkErr__stdZsyncio_u162_4.part.0
cmp byte [edi], 0
je 0x407850
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x407754
test dword [eax], 0x40000000
je 0x407830
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 0x407740
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 0x4077d0
mov edx, ebx
add edx, 1
jo 0x4077ec
test edx, edx
js 0x4077f8
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 0x4077ec
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x28]
test ebx, ebx
jg 0x4076f8
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 0x407744
call sym._raiseOverflow
jmp 0x4077ba
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 0x4077ba
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 0x4078c8
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 0x407744
mov edx, ebx
add edx, 1
jo 0x40793d
test edx, edx
js 0x407900
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 0x40793d
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x2c]
jmp 0x407744
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 0x407744
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 0x407744
call sym._raiseOverflow
jmp 0x407740