Function at 0x47ff30
Capabilities:
Write file on windows

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1c]
xor ebp, ebp
cmp edi, ebp
mov esi, ecx
jne 0x47ff74
mov edi, str.Cant_open_GIF_for_writing
or ecx, 0xffffffff
xor eax, eax
lea edx, [esi + 0x41]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
xor al, al
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov bx, word [esi + 0x16]
cmp bx, 8
jbe 0x47ffaf
mov edi, str.GIF_Images_must_be_8_bit_or_less
or ecx, 0xffffffff
xor eax, eax
lea edx, [esi + 0x41]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
xor al, al
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
mov edx, eax
and ebx, 0xffff
imul edx, ecx
cmp ebx, 1
mov dword [esi + 0x164], ecx
mov dword [esi + 0x168], eax
mov dword [esi + 0x174], ebx
mov dword [esi + 0x17c], ebp
mov dword [esi + 0x180], ebp
mov dword [esi + 0x178], edx
mov dword [esp + 0x10], 2
jle 0x47fff5
mov dword [esp + 0x10], ebx
push edi
push 6
dec eax
push 1
push str.GIF87a
mov dword [esi + 0x16c], ebp
mov dword [esi + 0x170], eax
call dword [sym.imp.MSVCRT.dll_fwrite]
mov eax, dword [esi + 0x164]
add esp, 0x10
mov ecx, esi
push edi
push eax
call fcn.004801f0
mov ecx, dword [esi + 0x168]
push edi
push ecx
mov ecx, esi
call fcn.004801f0
mov edx, dword [esi + 0x174]
push edi
shl ebx, 5
sub ebx, 0x20
dec edx
or ebx, edx
or bl, 0x80
push ebx
mov ebx, dword [sym.imp.MSVCRT.dll_fputc]
call ebx
push edi
push ebp
call ebx
push edi
push ebp
call ebx
mov eax, dword [esi + 0x34]
add esp, 0x18
mov ecx, esi
mov dword [esi + 0x184], eax
call fcn.0047e160
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x14], ebp
cmp ecx, ebp
jbe 0x4800ab
lea ebp, [eax + 1]
xor ecx, ecx
push edi
mov cl, byte [ebp + 1]
push ecx
call ebx
xor edx, edx
push edi
mov dl, byte [ebp]
push edx
call ebx
xor eax, eax
push edi
mov al, byte [ebp - 1]
push eax
call ebx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 0x28]
add esp, 0x18
inc eax
add ebp, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x480078
xor ebp, ebp
push edi
push 0x21
call ebx
push edi
push 0xf9
call ebx
mov ecx, dword [esi + 0x14c]
mov dx, word [esi + 0x160]
mov al, byte [esi + 0x14c]
cmp ecx, 0xffffffff
setne cl
and cl, 1
push edi
push 4
mov byte [esp + 0x34], cl
mov word [esp + 0x35], dx
mov byte [esp + 0x37], al
call ebx
push edi
push 1
lea ecx, [esp + 0x3c]
push 4
push ecx
call dword [sym.imp.MSVCRT.dll_fwrite]
push edi
push ebp
call ebx
push edi
push 0x2c
call ebx
add esp, 0x38
mov ecx, esi
push edi
push ebp
call fcn.004801f0
push edi
push ebp
mov ecx, esi
call fcn.004801f0
mov edx, dword [esi + 0x164]
push edi
push edx
mov ecx, esi
call fcn.004801f0
mov eax, dword [esi + 0x168]
push edi
push eax
mov ecx, esi
call fcn.004801f0
push edi
push ebp
call ebx
mov ecx, dword [esp + 0x18]
push edi
push ecx
call ebx
mov edx, dword [esp + 0x20]
add esp, 0x10
inc edx
mov ecx, esi
push edi
push edx
call fcn.00480230
push edi
push ebp
call ebx
push edi
push 0x3b
call ebx
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4