Function at 0x4c79d0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
mov eax, 0x1010
call fcn.005aa170
mov eax, dword [0x69e3d4]
xor eax, esp
mov dword [esp + 0x100c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x102c]
push esi
push edi
mov esi, ecx
call fcn.004c8150
mov edi, dword [ebp + 0x24]
movzx eax, word [ebp + 0x2e]
imul eax, edi
add eax, 0x1f
and eax, 0xffffffe0
mov ecx, dword [esp + 0x1030]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [0x6bc3bc], eax
mov eax, dword [esp + 0x1024]
mov dword [0x6bc3c0], eax
mov eax, dword [ebp + 0x28]
mov dword [0x6bc3d0], eax
mov dword [esp + 0x18], eax
imul eax, edi
mov ebx, 1
mov dword [0x6bc3c4], eax
xor eax, eax
shl ebx, cl
cmp ecx, 1
mov dword [0x6bc3d4], edi
mov dword [0x6bcf8c], eax
mov dword [esp + 0x14], 2
jle 0x4c7a64
mov dword [esp + 0x14], ecx
push 2
push eax
push esi
mov dword [0x6bc3c8], eax
mov dword [0x6bc3cc], eax
call fcn.005a931a
push esi
call fcn.005a9537
add esp, 0x10
cmp eax, 6
mov dword [esp + 0x10], eax
jae 0x4c7a94
mov dword [esp + 0x1038], 0
push esi
call fcn.005af666
add esp, 4
cmp dword [esp + 0x102c], 0
mov eax, str.GIF87a
jl 0x4c7ab1
mov eax, str.GIF89a
push esi
push 6
push 1
push eax
call fcn.005a8c68
add esp, 0x10
cmp dword [esp + 0x1038], 0
je 0x4c7b55
push 2
push 0
push esi
call fcn.005a931a
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, 0x1000
jbe 0x4c7aec
add eax, 0xfffff000
jmp 0x4c7aee
xor eax, eax
push 0
push eax
push esi
call fcn.005a931a
push esi
call fcn.005a9537
push esi
push 0x1000
lea ecx, [esp + 0x34]
push 1
push ecx
mov edi, eax
call fcn.005a9841
sub eax, 1
add esp, 0x20
test eax, eax
jle 0x4c7c2c
nop
cmp byte [esp + eax + 0x1b], 0
jne 0x4c7b2e
cmp byte [esp + eax + 0x1c], 0x3b
je 0x4c7b3a
sub eax, 1
test eax, eax
jg 0x4c7b20
jmp 0x4c7c2c
test eax, eax
jle 0x4c7c2c
push 0
add eax, edi
push eax
push esi
call fcn.005a931a
add esp, 0xc
jmp 0x4c7c2c
call fcn.004c7d10
mov edi, dword [esp + 0x18]
call fcn.004c7d10
mov eax, dword [esp + 0x1030]
mov edx, eax
shl edx, 5
sub edx, 0x20
add eax, 0xffffffff
or edx, eax
or edx, 0x80
push esi
push edx
call fcn.005ade1e
mov eax, dword [esp + 0x1030]
push esi
push eax
call fcn.005ade1e
push esi
push 0
call fcn.005ade1e
add esp, 0x18
test ebx, ebx
jle 0x4c7bd5
lea edi, [ebp + 0x49]
mov dword [esp + 0x10], ebx
movzx ecx, byte [edi + 1]
push esi
push ecx
call fcn.005ade1e
movzx edx, byte [edi]
push esi
push edx
call fcn.005ade1e
movzx eax, byte [edi - 1]
push esi
push eax
call fcn.005ade1e
add esp, 0x18
add edi, 4
sub dword [esp + 0x10], 1
jne 0x4c7ba8
cmp dword [esp + 0x102c], 0
jl 0x4c7c2c
push esi
push 0x21
call fcn.005ade1e
push esi
push 0xf9
call fcn.005ade1e
push esi
push 4
call fcn.005ade1e
push esi
push 1
call fcn.005ade1e
push esi
push 0
call fcn.005ade1e
push esi
push 0
call fcn.005ade1e
movzx ecx, byte [esp + 0x105c]
push esi
push ecx
call fcn.005ade1e
push esi
push 0
call fcn.005ade1e
add esp, 0x40
push esi
push 0x2c
call fcn.005ade1e
add esp, 8
xor edi, edi
call fcn.004c7d10
call fcn.004c7d10
mov edi, dword [0x6bc3d4]
call fcn.004c7d10
mov edi, dword [0x6bc3d0]
call fcn.004c7d10
mov edi, dword [esp + 0x1038]
xor eax, eax
test edi, edi
je 0x4c7c75
mov eax, dword [esp + 0x1030]
add eax, 0xffffffff
or eax, 0x80
cmp dword [0x6bc3c0], 0
je 0x4c7c81
or eax, 0x40
push esi
push eax
call fcn.005ade1e
add esp, 8
test edi, edi
je 0x4c7cc1
test ebx, ebx
jle 0x4c7cc1
lea edi, [ebp + 0x49]
movzx edx, byte [edi + 1]
push esi
push edx
call fcn.005ade1e
movzx eax, byte [edi]
push esi
push eax
call fcn.005ade1e
movzx ecx, byte [edi - 1]
push esi
push ecx
call fcn.005ade1e
add esp, 0x18
add edi, 4
sub ebx, 1
jne 0x4c7c96
mov edi, dword [esp + 0x14]
push esi
push edi
call fcn.005ade1e
push ebp
lea ecx, [edi + 1]
mov eax, esi
call fcn.004c7d40
push esi
push 0
call fcn.005ade1e
push esi
push 0x3b
call fcn.005ade1e
mov ecx, dword [esp + 0x1038]
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005a58d9
add esp, 0x1010
ret