Function at 0x404c90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov ecx, dword [0x5d40d0]
mov ebx, dword [0x5d40e0]
mov edx, dword [0x5d4130]
mov eax, dword [ecx + ebx*4]
mov ecx, dword [0x5da230]
mov dword [ebp - 0x1c], ecx
mov edi, dword [eax + 4]
lea esi, [edi + 1]
mov eax, esi
add eax, edx
cmp eax, dword [0x5d4100]
jb 0x404d00
lea edx, [ebx*4]
mov eax, dword [0x5d40d0]
add edx, eax
mov ebx, dword [edx]
mov eax, dword [ebx + 0x28]
test eax, eax
jne 0x404d18
mov eax, dword [0x5d4100]
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.00404570
mov ebx, dword [0x5d40e0]
mov ecx, dword [0x5da230]
jmp 0x404cc9
mov eax, dword [0x5d4100]
sub eax, ecx
mov ecx, 1
mov dword [ebp - 0x10], eax
dec eax
mov dword [ebp - 0x18], eax
test eax, eax
jg 0x404d32
jmp 0x404d47
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 0x404d31
mov ebx, dword [edx]
cmp dword [ebx + 0x2c], 2
je 0x404f50
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
xor eax, 0xffffffff
add eax, dword [ebx + 0xc]
jne 0x404df2
mov ebx, dword [0x5d40e0]
mov ecx, dword [0x5d40d0]
jmp 0x404dc7
mov edx, dword [ebx + 0xc]
mov eax, edx
add eax, eax
jne 0x404ded
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.00404540
add esp, 0x10
mov dword [ebx + 4], eax
test eax, eax
je 0x404de1
mov eax, dword [ebx + 4]
mov ecx, dword [0x5d40d0]
mov ebx, dword [0x5d40e0]
sub esi, edi
add esi, eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ecx + ebx*4]
xor eax, 0xffffffff
mov dword [0x5d4100], esi
add eax, dword [edx + 0xc]
jne 0x404dfe
mov ebx, dword [ecx + ebx*4]
mov esi, dword [0x5d4100]
mov eax, dword [ebx + 0x14]
mov edi, dword [ebx + 4]
test eax, eax
jne 0x404d71
mov dword [ebx + 4], 0
mov eax, str.fatal_error___scanner_input_buffer_overflow
call fcn.00404570
jmp 0x404da0
mov dword [ebx + 0xc], eax
jmp 0x404d84
mov ebx, dword [0x5d40e0]
mov ecx, dword [0x5d40d0]
mov edx, dword [ecx + ebx*4]
xor ebx, ebx
test ecx, ecx
mov esi, dword [edx + 4]
je 0x404e0c
mov ebx, edx
mov edi, dword [ebx]
test edi, edi
je 0x404ec3
mov ecx, dword [0x5d4090]
test ecx, ecx
je 0x404ec3
mov ebx, eax
cmp eax, 0x2000
jbe 0x404e32
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 0x404f8f
mov dword [0x5d4130], eax
mov ecx, dword [0x5d40d0]
mov eax, dword [0x5d40e0]
xor esi, esi
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x10], edi
mov ebx, dword [0x5d40e0]
mov eax, dword [0x5d4130]
mov edx, dword [ebp - 0x14]
mov edi, dword [ecx + ebx*4]
add edx, eax
cmp edx, dword [edi + 0xc]
ja 0x404f04
mov eax, dword [0x5d4130]
mov ecx, dword [ebp - 0x14]
add ecx, eax
lea edx, [ebx*4]
mov eax, dword [0x5d40d0]
mov dword [0x5d4130], 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 [0x5da230], eax
jmp 0x404cf3
mov dword [0x5d4130], 0
mov dword [edx + 0x10], 0
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x404f66
mov eax, dword [0x5d40e0]
mov ecx, dword [0x5d40d0]
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 0x404e67
shr eax, 1
push ecx
push ecx
lea eax, [edx + eax]
push eax
mov eax, dword [edi + 4]
push eax
call fcn.00404540
mov ebx, dword [0x5d40e0]
mov dword [edi + 4], eax
mov eax, dword [0x5d40d0]
add esp, 0x10
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 4]
test eax, eax
jne 0x404e83
mov eax, str.out_of_dynamic_memory_in_yy_get_next_buffer__
call fcn.00404570
mov ebx, dword [0x5d40e0]
jmp 0x404e83
mov dword [0x5d4130], 0
mov dword [ebx + 0x10], 0
jmp 0x404ed4
sub esp, 0xc
mov ebx, dword [0x5d4090]
mov esi, 1
push ebx
call fcn.00404b80
add esp, 0x10
mov ecx, dword [0x5d40d0]
mov dword [ebp - 0x14], 0
jmp 0x404e67
mov eax, dword [0x5d4090]
test byte [eax + 0xc], 0x20
jne 0x404fc0
mov eax, dword [0x5d40e0]
mov ecx, dword [0x5d40d0]
mov dword [0x5d4130], edi
xor esi, esi
mov eax, dword [ecx + eax*4]
test edi, edi
mov dword [eax + 0x10], edi
jne 0x404e67
jmp 0x404ed4
sub esp, 0xc
push str._F_P:_read_in_flex_scanner_failed_n
call fcn.0041a830
add esp, 0x10
jmp 0x404f9a