Function at 0x4047c0
Capabilities:
Read file on windows

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov r12, qword [0x00577358]
mov r10, qword [0x00577368]
movsxd rdx, dword [0x00577350]
mov rax, qword [0x00577348]
mov r9, qword [0x00577170]
lea rdi, [r12 + r10*8]
mov r13, qword [rdi]
mov r8, qword [r13 + 8]
lea rdx, [r8 + rdx + 1]
cmp rdx, rax
jb 0x404ad7
mov edx, dword [r13 + 0x34]
mov rbp, rax
sub rbp, r9
test edx, edx
jne 0x404838
xor ebx, ebx
cmp rbp, 1
setne bl
add ebx, 1
mov eax, ebx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
xor edx, edx
sub rbp, 1
je 0x404a53
nop dword [rax]
movzx ecx, byte [r9 + rdx]
mov byte [r8 + rdx], cl
add rdx, 1
cmp rbp, rdx
jne 0x404848
mov r13, qword [rdi]
mov esi, ebp
cmp dword [r13 + 0x38], 2
jne 0x4048ae
jmp 0x404a20
mov eax, dword [r13 + 0x18]
lea edx, [rax + rax]
test eax, eax
jg 0x404886
lea edx, [rax + 7]
cmovns edx, eax
sar edx, 3
add edx, eax
mov dword [r13 + 0x18], edx
add edx, 2
movsxd rdx, edx
call sub.msvcrt.dll_realloc
test rax, rax
mov qword [r13 + 8], rax
je 0x4048d4
mov r13, qword [rdi]
movsxd rbx, ebx
add rax, rbx
mov qword [0x00577348], rax
mov edx, esi
mov rcx, qword [r13 + 8]
not edx
add edx, dword [r13 + 0x18]
test edx, edx
jg 0x4048e0
sub rax, rcx
mov rbx, rax
mov eax, dword [r13 + 0x20]
test eax, eax
jne 0x404870
mov qword [r13 + 8], 0
lea rcx, str.fatal_error___scanner_input_buffer_overflow
call fcn.00404380
test r12, r12
je 0x4f2960
cmp qword [r13], 0
je 0x404998
mov r9, qword [0x00577188]
test r9, r9
je 0x404998
mov eax, 0x2000
cmp edx, eax
cmovle eax, edx
add rcx, rbp
mov edx, 1
movsxd r8, eax
mov rbx, r8
call sub.msvcrt.dll_fread
cmp ebx, eax
mov r14, rax
mov edi, eax
jg 0x404a87
mov rdx, qword [0x00577368]
mov dword [0x00577350], r14d
xor ebx, ebx
mov rax, qword [0x00577358]
lea r13, [rax + rdx*8]
mov r12, qword [r13]
mov dword [r12 + 0x1c], r14d
add esi, edi
cmp esi, dword [r12 + 0x18]
mov rcx, qword [r12 + 8]
jg 0x4049e8
mov dword [0x00577350], esi
movsxd rsi, esi
mov byte [rcx + rsi], 0
mov rax, qword [r13]
mov rax, qword [rax + 8]
mov byte [rax + rsi + 1], 0
mov rax, qword [r13]
mov rax, qword [rax + 8]
mov qword [0x00577170], rax
jmp 0x404824
mov dword [0x00577350], 0
mov dword [r13 + 0x1c], 0
test rbp, rbp
jne 0x404a77
mov rcx, qword [0x00577188]
mov ebx, 1
call fcn.004046f0
mov rdx, qword [0x00577368]
mov rax, qword [0x00577358]
mov edi, dword [0x00577350]
lea r13, [rax + rdx*8]
mov r12, qword [r13]
jmp 0x404952
sar edi, 1
lea edx, [rdi + rsi]
movsxd rdx, edx
call sub.msvcrt.dll_realloc
mov qword [r12 + 8], rax
mov rax, qword [r13]
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x404964
lea rcx, str.out_of_dynamic_memory_in_yy_get_next_buffer__
call fcn.00404380
nop word [rax + rax]
mov dword [0x00577350], 0
mov dword [r13 + 0x1c], 0
lea r13, [r12 + r10*8]
mov edi, dword [0x00577350]
mov ebx, 2
mov r12, qword [r13]
mov dword [r12 + 0x38], 2
jmp 0x404952
xor esi, esi
cmp dword [r13 + 0x38], 2
jne 0x4048ae
mov dword [0x00577350], 0
mov dword [r13 + 0x1c], 0
jmp 0x4049b3
mov r12, qword [0x00577358]
mov r10, qword [0x00577368]
jmp 0x404a32
mov rcx, qword [0x00577188]
call sub.msvcrt.dll_ferror
test eax, eax
jne 0x404ac9
mov r12, qword [0x00577358]
xor ebx, ebx
test r14d, r14d
mov r10, qword [0x00577368]
lea r13, [r12 + r10*8]
mov r12, qword [r13]
mov dword [0x00577350], r14d
mov dword [r12 + 0x1c], r14d
jne 0x404952
jmp 0x4049aa
lea rcx, str._F_P:_read_in_flex_scanner_failed_n
call fcn.0041bb50
jmp 0x404a97
lea rcx, str.fatal_flex_scanner_internal_error__end_of_buffer_missed
call fcn.00404380
nop
nop word cs:[rax + rax]
nop
mov rax, qword [pe_dos_header]
ud2