Function at 0x45abb0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov edx, dword [0x833594]
mov ecx, dword [0x8693e8]
push ebx
mov ebx, dword [0x8335a4]
push esi
push edi
mov edi, dword [0x8335ac]
mov eax, dword [edi + ebx*4]
mov esi, dword [eax + 4]
mov eax, dword [0x8335b0]
lea edx, [esi + edx + 1]
mov dword [ebp - 8], ecx
cmp eax, edx
jbe 0x45abf1
push str.fatal_flex_scanner_internal_error__end_of_buffer_missed
call fcn.0045a400
mov edx, dword [edi + ebx*4]
cmp dword [edx + 0x28], 0
jne 0x45ac0b
sub eax, ecx
dec eax
neg eax
sbb eax, eax
pop edi
neg eax
pop esi
inc eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, eax
sub edx, ecx
dec edx
mov dword [ebp - 4], edx
test edx, edx
jle 0x45ac30
mov dword [ebp - 0xc], edx
lea ebx, [ebx]
mov ecx, dword [ebp - 8]
mov cl, byte [ecx]
inc dword [ebp - 8]
mov byte [esi], cl
inc esi
dec dword [ebp - 0xc]
jne 0x45ac20
mov ecx, dword [edi + ebx*4]
mov esi, 2
cmp dword [ecx + 0x2c], esi
jne 0x45ac4c
xor eax, eax
mov dword [0x833594], eax
mov dword [ecx + 0x10], eax
jmp 0x45ae5c
mov esi, dword [ecx + 0xc]
sub esi, edx
dec esi
test esi, esi
jg 0x45acc1
mov esi, edi
neg esi
sbb esi, esi
and esi, ecx
mov ecx, dword [esi + 4]
sub eax, ecx
cmp dword [esi + 0x14], 0
mov dword [ebp - 0xc], eax
je 0x45ac98
mov eax, dword [esi + 0xc]
lea edx, [eax + eax]
test edx, edx
jg 0x45ac7d
mov edx, eax
shr edx, 3
add edx, eax
mov eax, edx
add eax, 2
push eax
push ecx
mov dword [esi + 0xc], edx
call dword [sym.imp.MSVCR100.dll_realloc]
mov edx, dword [ebp - 4]
add esp, 8
mov dword [esi + 4], eax
jmp 0x45ac9f
mov dword [esi + 4], 0
mov esi, dword [esi + 4]
test esi, esi
je 0x45ad6c
mov eax, dword [ebp - 0xc]
mov ecx, dword [edi + ebx*4]
add eax, esi
mov esi, dword [ecx + 0xc]
sub esi, edx
dec esi
mov dword [0x8335b0], eax
test esi, esi
jle 0x45ac56
cmp esi, 0x2000
jle 0x45acce
mov esi, 0x2000
mov ecx, dword [edi + ebx*4]
cmp dword [ecx + 0x18], 0
je 0x45ad92
mov dword [ebp - 8], 0
test esi, esi
je 0x45ad85
lea ebx, [ebx]
mov edx, dword [sym.postgres.exe_boot_yyin]
push edx
call dword [sym.imp.MSVCR100.dll_getc]
mov edi, dword [0x8335ac]
mov ebx, dword [0x8335a4]
add esp, 4
cmp eax, 0xffffffff
je 0x45ad30
cmp eax, 0xa
je 0x45ad35
mov ecx, dword [edi + ebx*4]
mov edx, dword [ecx + 4]
add edx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov byte [edx + ecx], al
mov ecx, dword [ebp - 8]
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, esi
jb 0x45acf0
cmp eax, 0xa
jne 0x45ad4a
mov edx, dword [edi + ebx*4]
mov ecx, dword [ebp - 8]
mov edx, dword [edx + 4]
mov esi, dword [ebp - 4]
add edx, ecx
inc ecx
mov byte [edx + esi], al
mov dword [ebp - 8], ecx
cmp eax, 0xffffffff
jne 0x45ad82
mov eax, dword [sym.postgres.exe_boot_yyin]
push eax
call dword [sym.imp.MSVCR100.dll_ferror]
add esp, 4
test eax, eax
je 0x45ad76
push str.input_in_flex_scanner_failed
call fcn.0045a400
push str.fatal_error___scanner_input_buffer_overflow
call fcn.0045a400
mov edi, dword [0x8335ac]
mov ebx, dword [0x8335a4]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov dword [0x833594], eax
jmp 0x45ae4f
mov edi, dword [sym.imp.MSVCR100.dll__errno]
call edi
mov edx, dword [0x8335ac]
mov ebx, dword [ebp - 4]
mov dword [eax], 0
mov ecx, dword [sym.postgres.exe_boot_yyin]
mov eax, dword [0x8335a4]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ecx + 4]
push esi
add edx, ebx
push 1
push edx
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
mov dword [0x833594], eax
test eax, eax
jne 0x45ae40
mov eax, dword [sym.postgres.exe_boot_yyin]
push eax
call dword [sym.imp.MSVCR100.dll_ferror]
add esp, 4
test eax, eax
je 0x45ae3b
call edi
cmp dword [eax], 0x2714
jne 0x45ad62
call edi
mov dword [eax], 0
mov ecx, dword [sym.postgres.exe_boot_yyin]
push ecx
call dword [sym.imp.MSVCR100.dll_clearerr]
mov edx, dword [sym.postgres.exe_boot_yyin]
mov eax, dword [0x8335ac]
mov ecx, dword [0x8335a4]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [edx + 4]
push esi
add eax, ebx
push 1
push eax
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x14
mov dword [0x833594], eax
test eax, eax
je 0x45add3
jmp 0x45ae40
mov eax, dword [0x833594]
mov edi, dword [0x8335ac]
mov ebx, dword [0x8335a4]
mov edx, dword [ebp - 4]
mov ecx, dword [edi + ebx*4]
mov dword [ecx + 0x10], eax
test eax, eax
jne 0x45ae97
lea esi, [eax + 2]
test edx, edx
jne 0x45ae8c
mov edx, dword [sym.postgres.exe_boot_yyin]
push edx
mov dword [ebp - 8], 1
call sym.postgres.exe_boot_yyrestart
mov edi, dword [0x8335ac]
mov ebx, dword [0x8335a4]
mov eax, dword [0x833594]
mov edx, dword [ebp - 4]
add esp, 4
jmp 0x45ae9e
mov ecx, dword [edi + ebx*4]
mov dword [ebp - 8], esi
mov dword [ecx + 0x2c], esi
jmp 0x45ae9e
mov dword [ebp - 8], 0
mov ecx, dword [edi + ebx*4]
lea esi, [eax + edx]
mov dword [ebp - 0xc], esi
cmp esi, dword [ecx + 0xc]
jbe 0x45aede
mov ecx, dword [ecx + 4]
mov esi, eax
sar esi, 1
add esi, eax
add esi, edx
push esi
push ecx
call dword [sym.imp.MSVCR100.dll_realloc]
mov edx, dword [edi + ebx*4]
mov dword [edx + 4], eax
mov eax, dword [edi + ebx*4]
add esp, 8
cmp dword [eax + 4], 0
jne 0x45aedb
push str.out_of_dynamic_memory_in_yy_get_next_buffer__
call fcn.0045a400
mov esi, dword [ebp - 0xc]
mov ecx, dword [edi + ebx*4]
mov edx, dword [ecx + 4]
mov eax, esi
mov byte [eax + edx], 0
mov ecx, dword [edi + ebx*4]
mov edx, dword [ecx + 4]
mov byte [edx + eax + 1], 0
mov dword [0x833594], eax
mov eax, dword [edi + ebx*4]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 8]
pop edi
pop esi
mov dword [0x8693e8], ecx
pop ebx
mov esp, ebp
pop ebp
ret