Function at 0x412f1b
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x440356
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c0
mov dword [ebp - 0x3ac], ecx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x3c], 0
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0043f6a6
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00415110
test eax, eax
je 0x412faa
push str.No_Name_Given
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov dword [ebp - 0x34c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x34c]
jmp 0x41382b
push 0x446414
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x413038
lea edx, [ebp - 0x2c]
push edx
push str.Cant_open_GIF_:_n
lea eax, [ebp - 0x350]
push eax
call sub.MFC42.DLL_operator_1
mov dword [ebp - 0x3b0], eax
mov ecx, dword [ebp - 0x3b0]
mov dword [ebp - 0x3b4], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x3b4]
push edx
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x350]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 0x354], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x354]
jmp 0x41382b
mov eax, dword [ebp - 0x10]
push eax
push 1
push 6
lea ecx, [ebp - 0x24]
push ecx
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
test eax, eax
jne 0x4130d5
lea edx, [ebp - 0x2c]
push edx
push str.Error_reading_GIF_Magic__n
lea eax, [ebp - 0x358]
push eax
call sub.MFC42.DLL_operator_1
mov dword [ebp - 0x3b8], eax
mov ecx, dword [ebp - 0x3b8]
mov dword [ebp - 0x3bc], ecx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x3bc]
push edx
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x358]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x35c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x35c]
jmp 0x41382b
push 3
push 0x446448
lea ecx, [ebp - 0x24]
push ecx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x4131ae
push str._is_not_a_valid_.GIF_file
lea edx, [ebp - 0x2c]
push edx
push str.Error_
lea eax, [ebp - 0x360]
push eax
call sub.MFC42.DLL_operator_1
mov dword [ebp - 0x3c0], eax
mov ecx, dword [ebp - 0x3c0]
mov dword [ebp - 0x3c4], ecx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x3c4]
push edx
lea eax, [ebp - 0x364]
push eax
call sub.MFC42.DLL_operator_2
mov dword [ebp - 0x3c8], eax
mov ecx, dword [ebp - 0x3c8]
mov dword [ebp - 0x3cc], ecx
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x3cc]
push edx
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x364]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x360]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x368], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x368]
jmp 0x41382b
push 3
lea ecx, [ebp - 0x21]
push ecx
lea edx, [ebp - 0x30]
push edx
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
mov byte [ebp - 0x2d], 0
push 0x446470
lea eax, [ebp - 0x30]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
je 0x413233
push 0x446474
lea ecx, [ebp - 0x30]
push ecx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
je 0x413233
push str.Error__Bad_GIF_Version_number
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x36c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x36c]
jmp 0x41382b
mov eax, dword [ebp - 0x10]
push eax
push 1
push 7
lea ecx, [ebp - 0x24]
push ecx
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
test eax, eax
jne 0x413290
push str.Error__failed_to_GIF_read_screen_descriptor._nGiving_up
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x370], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x370]
jmp 0x41382b
mov eax, dword [ebp - 0x23]
and eax, 0xff
shl eax, 8
mov ecx, dword [ebp - 0x24]
and ecx, 0xff
or eax, ecx
mov dword [0x459f00], eax
mov edx, dword [ebp - 0x21]
and edx, 0xff
shl edx, 8
mov eax, dword [ebp - 0x22]
and eax, 0xff
or edx, eax
mov dword [0x459f04], edx
mov ecx, dword [ebp - 0x20]
and ecx, 0xff
and ecx, 7
mov edx, 2
shl edx, cl
mov dword [0x45a208], edx
mov eax, dword [ebp - 0x20]
and eax, 0xff
and eax, 0x70
sar eax, 3
add eax, 1
mov dword [0x45a20c], eax
mov ecx, dword [ebp - 0x1f]
and ecx, 0xff
mov dword [0x45a210], ecx
mov edx, dword [ebp - 0x1e]
and edx, 0xff
mov dword [0x45a214], edx
mov eax, dword [ebp - 0x20]
and eax, 0xff
and eax, 0x80
cmp eax, 0x80
jne 0x41338b
push 0x459f08
mov ecx, dword [0x45a208]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov ecx, dword [ebp - 0x3ac]
call fcn.0041383b
test eax, eax
jne 0x41338b
push str.Error_reading_GIF_colormap
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x374], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x374]
jmp 0x41382b
cmp dword [0x45a214], 0
je 0x4133b0
cmp dword [0x45a214], 0x31
je 0x4133b0
push str.Non_square_pixels_in_GIF_image._nIgnoring_that_fact...
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov ecx, dword [ebp - 0x10]
push ecx
push 1
push 1
lea edx, [ebp - 0x28]
push edx
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
test eax, eax
jne 0x41340d
push str.Unexpected_EOF_in_GIF._nGiving_up
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x378], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x378]
jmp 0x41382b
mov edx, dword [ebp - 0x28]
and edx, 0xff
cmp edx, 0x21
jne 0x413495
mov eax, dword [ebp - 0x10]
push eax
push 1
push 1
lea ecx, [ebp - 0x28]
push ecx
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
test eax, eax
jne 0x413478
push str.Error_on_extension_read._nGiving_up
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x37c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x37c]
jmp 0x41382b
mov eax, dword [ebp - 0x28]
and eax, 0xff
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov ecx, dword [ebp - 0x3ac]
call fcn.004138b1
jmp 0x4133b0
mov edx, dword [ebp - 0x28]
and edx, 0xff
cmp edx, 0x2c
je 0x4134a8
jmp 0x4133b0
mov eax, dword [ebp - 0x10]
push eax
push 1
push 9
lea ecx, [ebp - 0x24]
push ecx
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
test eax, eax
jne 0x413505
push str.Error_on_dimension_read_nGiving_up
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x380], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x380]
jmp 0x41382b
mov eax, dword [ebp - 0x1c]
and eax, 0xff
and eax, 0x80
xor ecx, ecx
cmp eax, 0x80
setne cl
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x1c]
and ecx, 0xff
and ecx, 7
add ecx, 1
mov edx, 1
shl edx, cl
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x1f]
and edx, 0xff
shl edx, 8
mov eax, dword [ebp - 0x20]
and eax, 0xff
or edx, eax
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x1d]
and ecx, 0xff
shl ecx, 8
mov edx, dword [ebp - 0x1e]
and edx, 0xff
or ecx, edx
mov dword [ebp - 0x3c], ecx
cmp dword [ebp - 0x34], 0
jl 0x413577
cmp dword [ebp - 0x3c], 0
jge 0x4135bb
push str.Negative_image_dimensions__nGiving_up
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x384], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x384]
jmp 0x41382b
mov ecx, dword [ebp - 0x34]
imul ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x348], ecx
mov edx, dword [ebp - 0x348]
imul edx, edx, 3
mov dword [ebp - 0x348], edx
mov eax, dword [ebp - 0x348]
push eax
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x388], eax
mov ecx, dword [ebp - 0x388]
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x40], 0
jne 0x41363f
push str.Out_of_Memory_in_GIFRead
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x38c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x38c]
jmp 0x41382b
cmp dword [ebp - 0x44], 0
jne 0x41375e
lea eax, [ebp - 0x344]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov ecx, dword [ebp - 0x3ac]
call fcn.0041383b
test eax, eax
jne 0x4136c3
push str.Error_reading_GIF_colormap_nGiving_up
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x390], eax
mov ecx, dword [ebp - 0x390]
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x394], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x394]
jmp 0x41382b
mov eax, dword [ebp - 0x1c]
and eax, 0xff
and eax, 0x40
xor ecx, ecx
cmp eax, 0x40
sete cl
push ecx
lea edx, [ebp - 0x344]
push edx
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x34]
push ecx
mov edx, dword [ebp - 0x40]
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x3ac]
call fcn.00414153
test eax, eax
jne 0x413759
push str.Error_reading_GIF_file_nLocalColorMap_nGiving_up
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x398], ecx
mov edx, dword [ebp - 0x398]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x39c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x39c]
jmp 0x41382b
jmp 0x4137f0
mov ecx, dword [ebp - 0x1c]
and ecx, 0xff
and ecx, 0x40
xor edx, edx
cmp ecx, 0x40
sete dl
push edx
push 0x459f08
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x34]
push ecx
mov edx, dword [ebp - 0x40]
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x3ac]
call fcn.00414153
test eax, eax
jne 0x4137f0
push str.Error_reading_GIF_file_nGIFScreen_Colormap_nGiving_up
mov ecx, dword [ebp - 0x3ac]
add ecx, 0xc
call sub.MFC42.DLL_CString::operator_1
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x3a0], ecx
mov edx, dword [ebp - 0x3a0]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov dword [ebp - 0x3a4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x3a4]
jmp 0x41382b
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x34]
mov dword [ecx], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x3c]
mov dword [eax], ecx
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x3a8], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x3a8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc