Function at 0x423d10
Capabilities:
Read file on windows

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x134
mov eax, dword [esp + 0x148]
mov edi, dword [esp + 0x14c]
mov bl, byte [esp + 0x150]
mov dword [esp], eax
mov dword [esp + 4], 0x76d6c0
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
test esi, esi
je 0x424104
xor edx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
mov dword [esp], esi
mov dword [esp + 4], 0x1e
mov dword [esp + 8], 1
call dword [sym.imp.MSVCRT.dll_fseek]
lea edx, [esp + 0x10]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
xor al, al
xor ecx, ecx
mov edx, dword [esp + 0x10]
test edx, edx
jle 0x423ef5
mov bl, al
mov ebp, ecx
cmp ebp, edi
je 0x423eec
lea edx, [esp + 0x14]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
mov dword [esp], esi
mov edx, dword [esp + 0x14]
mov dword [esp + 4], edx
mov dword [esp + 8], 1
call dword [sym.imp.MSVCRT.dll_fseek]
mov dword [esp + 0x18], 0
lea edx, [esp + 0x18]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
mov edx, dword [esp + 0x18]
test edx, edx
jle 0x423ecf
lea esi, [esi]
lea edx, [esp + 0x14]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
mov dword [esp], esi
mov edx, dword [esp + 0x14]
mov dword [esp + 4], edx
mov dword [esp + 8], 1
call dword [sym.imp.MSVCRT.dll_fseek]
mov dword [esp], esi
mov dword [esp + 4], 8
mov dword [esp + 8], 1
call dword [sym.imp.MSVCRT.dll_fseek]
lea edx, [esp + 0x14]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
mov dword [esp], esi
mov ecx, dword [esp + 0x14]
lea edx, [ecx*8]
lea edi, [edx + ecx*4]
mov dword [esp + 4], edi
mov dword [esp + 8], 1
call dword [sym.imp.MSVCRT.dll_fseek]
mov edx, dword [esp + 0x18]
dec edx
test edx, edx
mov dword [esp + 0x18], edx
jg 0x423e20
mov edi, dword [esp + 0x14c]
mov edx, dword [esp + 0x10]
dec edx
inc ebp
mov dword [esp + 0x10], edx
test edx, edx
jg 0x423da2
mov al, bl
mov bl, byte [esp + 0x150]
jmp 0x423ef5
mov bl, byte [esp + 0x150]
mov al, 1
test al, al
je 0x4240fb
lea edx, [esp + 0x14]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
mov dword [esp], esi
mov edx, dword [esp + 0x14]
mov dword [esp + 4], edx
mov dword [esp + 8], 1
call dword [sym.imp.MSVCRT.dll_fseek]
mov dword [esp + 0x1c], 0
lea edx, [esp + 0x1c]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x4240fb
lea edi, [esp + 0x128]
lea edx, [esp + 0x14]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
lea ecx, [esp + 0x20]
mov edx, dword [esp + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
mov ecx, dword [esp + 0x14]
xor dl, dl
mov byte [esp + ecx + 0x20], dl
mov byte [esp + 0x3f], dl
lea ecx, [esp + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
mov dword [esp], esi
mov edx, dword [esp + 0x14]
mov dword [esp + 4], edx
mov dword [esp + 8], 1
call dword [sym.imp.MSVCRT.dll_fseek]
mov dword [esp], esi
mov dword [esp + 4], 4
mov dword [esp + 8], 1
call dword [sym.imp.MSVCRT.dll_fseek]
lea edx, [esp + 0x14]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4240ea
mov dword [esp], esi
mov dword [esp + 4], 4
mov dword [esp + 8], 1
call dword [sym.imp.MSVCRT.dll_fseek]
lea edx, [esp + 0x120]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], 8
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
mov dword [esp], esi
mov dword [esp + 4], 4
mov dword [esp + 8], 1
call dword [sym.imp.MSVCRT.dll_fseek]
mov dword [esp], edi
mov dword [esp + 4], 1
mov dword [esp + 8], 8
mov dword [esp + 0xc], esi
call dword [sym.imp.MSVCRT.dll_fread]
mov byte [esp + 0x130], 0
lea edx, [esp + 0x120]
lea ecx, [esp + 0x20]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov byte [esp + 8], bl
call fcn.00423360
mov edx, dword [esp + 0x14]
add edx, 0xfffffffe
mov dword [esp + 0x14], edx
jne 0x424043
mov edx, dword [esp + 0x1c]
dec edx
test edx, edx
mov dword [esp + 0x1c], edx
jg 0x423f73
mov dword [esp], esi
call dword [sym.imp.MSVCRT.dll_fclose]
xor eax, eax
add esp, 0x134
pop ebx
pop ebp
pop esi
pop edi
ret