Function at 0x404c30
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov ecx, dword [0x51c0d0]
mov ebx, dword [0x51c0e0]
mov edx, dword [0x51c130]
mov eax, dword [ecx + ebx*4]
mov ecx, dword [0x521d80]
mov dword [ebp - 0x1c], ecx
mov edi, dword [eax + 4]
lea esi, [edi + 1]
mov eax, esi
add eax, edx
cmp eax, dword [0x51c100]
jb 0x404ca0
lea edx, [ebx*4]
mov eax, dword [0x51c0d0]
add edx, eax
mov ebx, dword [edx]
mov eax, dword [ebx + 0x28]
test eax, eax
jne 0x404cb8
mov eax, dword [0x51c100]
dec eax
cmp eax, ecx
setne al
and eax, 0xff
mov esi, eax
inc esi
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, str.fatal_flex_scanner_internal_error__end_of_buffer_missed
call fcn.00404510
mov ebx, dword [0x51c0e0]
mov ecx, dword [0x521d80]
jmp 0x404c69
mov eax, dword [0x51c100]
sub eax, ecx
mov ecx, 1
mov dword [ebp - 0x10], eax
dec eax
mov dword [ebp - 0x18], eax
test eax, eax
jg 0x404cd2
jmp 0x404ce7
inc esi
mov ebx, dword [ebp - 0x1c]
inc ecx
mov al, byte [ebx]
inc ebx
mov byte [edi], al
mov edi, esi
mov dword [ebp - 0x1c], ebx
cmp ecx, dword [ebp - 0x10]
jne 0x404cd1
mov ebx, dword [edx]
cmp dword [ebx + 0x2c], 2
je 0x404ef0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
xor eax, 0xffffffff
add eax, dword [ebx + 0xc]
jne 0x404d92
mov ebx, dword [0x51c0e0]
mov ecx, dword [0x51c0d0]
jmp 0x404d67
mov edx, dword [ebx + 0xc]
mov eax, edx
add eax, eax
jne 0x404d8d
mov eax, edx
shr eax, 3
add eax, edx
mov dword [ebx + 0xc], eax
push eax
push eax
mov eax, dword [ebx + 0xc]
add eax, 2
push eax
mov eax, dword [ebx + 4]
push eax
call fcn.004044e0
add esp, 0x10
mov dword [ebx + 4], eax
test eax, eax
je 0x404d81
mov eax, dword [ebx + 4]
mov ecx, dword [0x51c0d0]
mov ebx, dword [0x51c0e0]
sub esi, edi
add esi, eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ecx + ebx*4]
xor eax, 0xffffffff
mov dword [0x51c100], esi
add eax, dword [edx + 0xc]
jne 0x404d9e
mov ebx, dword [ecx + ebx*4]
mov esi, dword [0x51c100]
mov eax, dword [ebx + 0x14]
mov edi, dword [ebx + 4]
test eax, eax
jne 0x404d11
mov dword [ebx + 4], 0
mov eax, str.fatal_error___scanner_input_buffer_overflow
call fcn.00404510
jmp 0x404d40
mov dword [ebx + 0xc], eax
jmp 0x404d24
mov ebx, dword [0x51c0e0]
mov ecx, dword [0x51c0d0]
mov edx, dword [ecx + ebx*4]
xor ebx, ebx
test ecx, ecx
mov esi, dword [edx + 4]
je 0x404dac
mov ebx, edx
mov edi, dword [ebx]
test edi, edi
je 0x404e63
mov ecx, dword [0x51c090]
test ecx, ecx
je 0x404e63
mov ebx, eax
cmp eax, 0x2000
jbe 0x404dd2
mov ebx, 0x2000
mov edx, dword [ebp - 0x18]
push ecx
push ebx
push 1
lea eax, [esi + edx]
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
mov edi, eax
cmp ebx, eax
jg 0x404f2f
mov dword [0x51c130], eax
mov ecx, dword [0x51c0d0]
mov eax, dword [0x51c0e0]
xor esi, esi
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x10], edi
mov ebx, dword [0x51c0e0]
mov eax, dword [0x51c130]
mov edx, dword [ebp - 0x14]
mov edi, dword [ecx + ebx*4]
add edx, eax
cmp edx, dword [edi + 0xc]
ja 0x404ea4
mov eax, dword [0x51c130]
mov ecx, dword [ebp - 0x14]
add ecx, eax
lea edx, [ebx*4]
mov eax, dword [0x51c0d0]
mov dword [0x51c130], ecx
add edx, eax
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov byte [eax + ecx], 0
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov byte [ecx + eax + 1], 0
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov dword [0x521d80], eax
jmp 0x404c93
mov dword [0x51c130], 0
mov dword [edx + 0x10], 0
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x404f06
mov eax, dword [0x51c0e0]
mov ecx, dword [0x51c0d0]
mov ebx, dword [ebp - 0x18]
mov esi, 2
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x14], ebx
mov dword [eax + 0x2c], 2
jmp 0x404e07
shr eax, 1
push ecx
push ecx
lea eax, [edx + eax]
push eax
mov eax, dword [edi + 4]
push eax
call fcn.004044e0
mov ebx, dword [0x51c0e0]
mov dword [edi + 4], eax
mov eax, dword [0x51c0d0]
add esp, 0x10
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 4]
test eax, eax
jne 0x404e23
mov eax, str.out_of_dynamic_memory_in_yy_get_next_buffer__
call fcn.00404510
mov ebx, dword [0x51c0e0]
jmp 0x404e23
mov dword [0x51c130], 0
mov dword [ebx + 0x10], 0
jmp 0x404e74
sub esp, 0xc
mov ebx, dword [0x51c090]
mov esi, 1
push ebx
call fcn.00404b20
add esp, 0x10
mov ecx, dword [0x51c0d0]
mov dword [ebp - 0x14], 0
jmp 0x404e07
mov eax, dword [0x51c090]
test byte [eax + 0xc], 0x20
jne 0x404f60
mov eax, dword [0x51c0e0]
mov ecx, dword [0x51c0d0]
mov dword [0x51c130], edi
xor esi, esi
mov eax, dword [ecx + eax*4]
test edi, edi
mov dword [eax + 0x10], edi
jne 0x404e07
jmp 0x404e74
sub esp, 0xc
push str._F_P:_read_in_flex_scanner_failed_n
call fcn.00419060
add esp, 0x10
jmp 0x404f3a