Function at 0x404a3c
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [0x411c18]
mov ecx, dword [0x411bd8]
inc eax
mov edx, dword [0x41293c]
push ebx
push esi
mov esi, dword [0x411be4]
mov ebx, dword [esi + 4]
add eax, ebx
cmp ecx, eax
ja 0x404c71
cmp dword [esi + 0x20], 0
jne 0x404a80
sub ecx, edx
xor eax, eax
cmp ecx, 1
setne al
inc eax
jmp 0x404c6b
push edi
mov edi, ecx
sub edi, edx
dec edi
mov dword [ebp - 4], edi
test edi, edi
jle 0x404a9b
mov al, byte [edx]
mov byte [ebx], al
inc ebx
inc edx
sub edi, 1
jne 0x404a8d
mov edi, dword [ebp - 4]
xor eax, eax
inc eax
cmp dword [esi + 0x24], 2
jne 0x404ab7
mov ebx, dword [ebp - 4]
xor edi, edi
and dword [esi + 0x10], edi
mov dword [0x411c18], edi
jmp 0x404c26
mov edx, dword [esi + 0xc]
mov ebx, edx
sub ebx, edi
dec ebx
test ebx, ebx
jg 0x404b30
mov ebx, dword [esi + 4]
sub ecx, ebx
cmp dword [esi + 0x14], 0
mov dword [ebp - 8], ecx
je 0x404b0c
lea eax, [edx + edx]
test eax, eax
jg 0x404ae1
mov eax, edx
shr eax, 3
add eax, edx
jmp 0x404ae4
lea eax, [edx + edx]
lea ecx, [eax + 2]
mov dword [esi + 0xc], eax
cmp ecx, eax
jb 0x404af2
mov edx, ecx
jmp 0x404af5
or edx, 0xffffffff
cmp ecx, eax
jb 0x404b92
push edx
push ebx
call dword [sym.imp.msvcrt.dll_realloc]
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
jmp 0x404b0e
xor eax, eax
mov dword [esi + 4], eax
test eax, eax
je 0x404b9c
mov edx, dword [esi + 0xc]
add ecx, eax
mov ebx, edx
mov dword [0x411bd8], ecx
sub ebx, edi
dec ebx
test ebx, ebx
jle 0x404ac3
xor eax, eax
inc eax
mov ecx, 0x2000
cmp ebx, ecx
jle 0x404b3b
mov ebx, ecx
cmp dword [esi + 0x18], 0
je 0x404bdc
xor edi, edi
test ebx, ebx
jle 0x404bd1
push dword [0x411bd4]
call dword [sym.imp.msvcrt.dll_getc]
mov esi, dword [0x411be4]
mov edx, eax
pop ecx
cmp edx, 0xffffffff
je 0x404b7e
cmp edx, 0xa
je 0x404b83
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 4]
add ecx, edi
inc edi
mov byte [ecx + eax], dl
cmp edi, ebx
jl 0x404b4f
cmp edx, 0xa
jne 0x404ba6
mov eax, dword [esi + 4]
mov ebx, dword [ebp - 4]
add eax, edi
inc edi
mov byte [eax + ebx], 0xa
jmp 0x404ba9
mov ecx, 0x40128c
jmp 0x404c76
mov ecx, 0x4012a0
jmp 0x404c76
mov ebx, dword [ebp - 4]
cmp edx, 0xffffffff
jne 0x404bd4
push dword [0x411bd4]
call dword [sym.imp.msvcrt.dll_ferror]
pop ecx
test eax, eax
je 0x404bc9
mov ecx, 0x4012cc
jmp 0x404c76
mov esi, dword [0x411be4]
jmp 0x404bd4
mov ebx, dword [ebp - 4]
mov dword [0x411c18], edi
jmp 0x404c1f
push dword [0x411bd4]
push ebx
push eax
mov eax, dword [esi + 4]
add eax, edi
push eax
call dword [sym.imp.msvcrt.dll_fread]
mov edi, eax
add esp, 0x10
mov dword [0x411c18], edi
test edi, edi
jne 0x404c16
push dword [0x411bd4]
call dword [sym.imp.msvcrt.dll_ferror]
pop ecx
test eax, eax
jne 0x404bbf
mov edi, dword [0x411c18]
mov ebx, dword [ebp - 4]
mov esi, dword [0x411be4]
mov dword [esi + 0x10], edi
test edi, edi
jne 0x404c48
test ebx, ebx
jne 0x404c40
call fcn.00404daf
mov esi, dword [0x411be4]
xor eax, eax
mov edi, dword [0x411c18]
inc eax
jmp 0x404c4a
push 2
pop eax
mov dword [esi + 0x24], eax
jmp 0x404c4a
xor eax, eax
mov ecx, dword [esi + 4]
add edi, ebx
mov dword [0x411c18], edi
mov byte [edi + ecx], 0
mov ecx, dword [esi + 4]
mov byte [edi + ecx + 1], 0
mov ecx, dword [esi + 4]
mov dword [0x41293c], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x401254
call fcn.00404ea6
int3