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

Disassembly:
sub esp, 0xcd4
mov eax, dword [0x613ad0]
xor eax, esp
mov dword [esp + 0xcd0], eax
mov eax, dword [esp + 0xcd8]
mov ecx, dword [esp + 0xce0]
push ebx
push ebp
xor ebp, ebp
push 0x5da6e8
push eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebp
mov dword [ecx], ebp
call fcn.005ac643
mov ebx, eax
add esp, 8
cmp ebx, ebp
jne 0x47ac8e
lea eax, [ebp + 3]
pop ebp
pop ebx
mov ecx, dword [esp + 0xcd0]
xor ecx, esp
call fcn.005aac48
add esp, 0xcd4
ret
push ebp
push ebp
push ebx
call fcn.005ad4e7
push ebx
push 6
lea eax, [esp + 0x30]
push 1
push eax
call fcn.005ad23f
add esp, 0x1c
cmp eax, 6
je 0x47acd2
push ebx
call fcn.005ac46d
add esp, 4
pop ebp
mov eax, 7
pop ebx
mov ecx, dword [esp + 0xcd0]
xor ecx, esp
call fcn.005aac48
add esp, 0xcd4
ret
push esi
mov eax, 6
mov ecx, str.GIF87a
lea edx, [esp + 0x20]
push edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x47acfa
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x47ace2
cmp eax, ebp
je 0x47ad57
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x47ad49
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x47ad57
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x47ad49
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x47ad57
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x47ad49
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x47ad57
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x47ad57
cmp esi, ebp
mov eax, 1
jg 0x47ad59
or eax, 0xffffffff
jmp 0x47ad59
xor eax, eax
cmp eax, ebp
je 0x47adfe
mov eax, 6
mov ecx, str.GIF89a
lea edx, [esp + 0x24]
nop
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x47ad88
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x47ad70
cmp eax, ebp
je 0x47ade5
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x47add7
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x47ade5
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x47add7
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x47ade5
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x47add7
sub eax, 1
add ecx, 1
add edx, 1
cmp eax, ebp
je 0x47ade5
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x47ade5
cmp esi, ebp
mov eax, 1
jg 0x47ade7
or eax, 0xffffffff
jmp 0x47ade7
xor eax, eax
cmp eax, ebp
je 0x47adfe
push ebx
call fcn.005ac46d
add esp, 4
mov eax, 5
jmp 0x47b3fb
push ebx
push 7
lea ecx, [esp + 0x40]
push 1
push ecx
call fcn.005ad23f
add esp, 0x10
cmp eax, 7
jne 0x47ae4b
mov al, byte [esp + 0x3c]
movzx edx, al
and edx, 7
add edx, 1
test al, al
mov ecx, edx
jns 0x47ae5e
mov esi, 3
shl esi, cl
push ebx
lea eax, [esp + 0x6e4]
push esi
push 1
push eax
mov dword [esp + 0x2c], esi
call fcn.005ad23f
add esp, 0x10
cmp eax, esi
je 0x47ae92
push ebx
call fcn.005ac46d
add esp, 4
mov eax, 7
jmp 0x47b3fb
mov eax, 3
shl eax, cl
lea ecx, [esp + 0x6e0]
push eax
push ebp
push ecx
mov dword [esp + 0x28], eax
call fcn.00475d50
mov al, 0xff
add esp, 0xc
mov byte [esp + 0x6e5], al
mov byte [esp + 0x6e4], al
mov byte [esp + 0x6e3], al
test ebp, ebp
jne 0x47b0bb
mov eax, dword [esp + 0xcec]
lea edx, [esp + 0x2e0]
mov dword [esp + 0x20], ebp
sub edx, eax
mov edi, edi
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x47aeb0
mov ecx, dword [esp + 0x14]
mov eax, ecx
sub eax, 0
je 0x47afb4
sub eax, 1
je 0x47af74
sub eax, 1
je 0x47af31
push ecx
lea edx, [esp + 0x44]
push str._d.gif
push edx
call fcn.005ab5fa
lea eax, [esp + 0x4c]
add esp, 0xc
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x47aef5
lea edi, [esp + 0x2e0]
sub eax, edx
add edi, 0xfffffffe
lea esp, [esp]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x47af10
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x47b03f
lea eax, [esp + 0x2e0]
add eax, 0xfffffffe
jmp 0x47af40
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x47af40
mov ecx, dword [str.rol.gif]
mov edx, dword [0x5e4c28]
mov dword [eax], ecx
mov ecx, dword [0x5e4c2c]
mov dword [eax + 4], edx
mov edx, dword [0x5e4c30]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp 0x47b03f
lea eax, [esp + 0x2e0]
add eax, 0xfffffffe
mov edi, edi
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x47af80
mov ecx, dword [str.clk.gif]
mov edx, dword [0x5e4c18]
mov dword [eax], ecx
mov ecx, dword [0x5e4c1c]
mov dword [eax + 4], edx
mov edx, dword [0x5e4c20]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp 0x47b03f
lea eax, [esp + 0x2e0]
add eax, 0xfffffffe
cmp dword [esp + 0xcf4], 1
jne 0x47b010
jmp 0x47afd0
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x47afd0
mov ecx, dword [str._flat.gif]
mov edx, dword [0x5e4c04]
mov dword [eax], ecx
mov ecx, dword [0x5e4c08]
mov dword [eax + 4], edx
mov edx, dword [0x5e4c0c]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e4c10]
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
jmp 0x47b03f
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x47b010
mov edx, dword [str.off.gif]
mov ecx, dword [0x5e4bf4]
mov dword [eax], edx
mov edx, dword [0x5e4bf8]
mov dword [eax + 4], ecx
mov ecx, dword [0x5e4bfc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
lea edx, [esp + 0x2e0]
push 0x5da6e0
push edx
call fcn.005ac643
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x47b3d7
push ebp
push 6
lea eax, [esp + 0x2c]
push 1
push eax
call fcn.005acf21
add esp, 0x10
cmp eax, 6
jne 0x47b3e7
push ebp
push 7
lea ecx, [esp + 0x40]
push 1
push ecx
call fcn.005acf21
add esp, 0x10
cmp eax, 7
jne 0x47b3e7
test byte [esp + 0x3c], 0x80
je 0x47b0bb
mov esi, dword [esp + 0x1c]
push ebp
push esi
lea edx, [esp + 0x6e8]
push 1
push edx
call fcn.005acf21
add esp, 0x10
cmp eax, esi
jne 0x47b3e7
push ebx
push 1
lea eax, [esp + 0x34]
push 1
push eax
call fcn.005ad23f
add esp, 0x10
cmp eax, 1
jne 0x47b3e7
push ebp
push eax
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.005acf21
add esp, 0x10
cmp eax, 1
jne 0x47b3e7
mov al, byte [esp + 0x2c]
cmp al, 0x21
je 0x47b2fe
cmp al, 0x2c
je 0x47b145
cmp al, 0x3b
jne 0x47ae92
test ebp, ebp
je 0x47b12b
push ebp
call fcn.005ac46d
add esp, 4
cmp dword [esp + 0x20], 0
jne 0x47b12b
lea ecx, [esp + 0x2e0]
push ecx
call fcn.005aff3b
add esp, 4
push ebx
call fcn.005ac46d
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [eax], edx
xor eax, eax
jmp 0x47b3fb
push ebx
push 9
lea edx, [esp + 0x35]
push 1
push edx
mov dword [esp + 0x30], 1
call fcn.005ad23f
add esp, 0x10
cmp eax, 9
jne 0x47b3e7
push ebp
push eax
lea eax, [esp + 0x35]
push 1
push eax
call fcn.005acf21
add esp, 0x10
cmp eax, 9
jne 0x47b3e7
movzx eax, byte [esp + 0x35]
test al, al
jns 0x47b1d2
and eax, 7
add eax, 1
mov ecx, eax
mov esi, 3
shl esi, cl
push ebx
lea ecx, [esp + 0x9e4]
push esi
push 1
push ecx
call fcn.005ad23f
add esp, 0x10
cmp eax, esi
jne 0x47b3e7
push ebp
push esi
lea edx, [esp + 0x9e8]
push 1
push edx
call fcn.005acf21
add esp, 0x10
cmp eax, esi
jne 0x47b3e7
push ebx
push 1
lea eax, [esp + 0x1a]
push 1
push eax
call fcn.005ad23f
add esp, 0x10
cmp eax, 1
jne 0x47b3e7
push ebp
push eax
push eax
lea ecx, [esp + 0x1e]
push ecx
call fcn.005acf21
add esp, 0x10
cmp eax, 1
jne 0x47b3e7
push ebx
push 1
lea edx, [esp + 0x18]
push 1
push edx
call fcn.005ad23f
add esp, 0x10
cmp eax, 1
jne 0x47b3e7
push ebp
push eax
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.005acf21
add esp, 0x10
cmp eax, 1
jne 0x47b3e7
mov al, byte [esp + 0x10]
movzx esi, al
xor edi, edi
test esi, esi
jle 0x47b299
cmp esi, 0x200
jle 0x47b254
mov esi, 0x200
push ebx
push esi
lea ecx, [esp + 0xe8]
push 1
push ecx
call fcn.005ad23f
add esp, 0x10
cmp eax, esi
jne 0x47b3e7
push ebp
push esi
lea edx, [esp + 0xe8]
push 1
push edx
call fcn.005acf21
add esp, 0x10
cmp eax, esi
jne 0x47b3e7
mov al, byte [esp + 0x10]
add edi, esi
movzx esi, al
cmp edi, esi
jl 0x47b247
test al, al
jne 0x47b206
push ebp
push 1
lea eax, [esp + 0xe8]
push 1
push eax
mov byte [esp + 0xf0], 0x3b
call fcn.005acf21
push ebp
call fcn.005ac46d
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0xd08]
add esi, 1
add esp, 0x14
xor ebp, ebp
test eax, eax
mov dword [esp + 0x14], esi
jl 0x47ae92
cmp esi, eax
jl 0x47ae92
push ebx
call fcn.005ac46d
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [ecx], esi
xor eax, eax
jmp 0x47b3fb
push ebx
push 1
lea ecx, [esp + 0x1b]
push 1
push ecx
call fcn.005ad23f
add esp, 0x10
cmp eax, 1
jne 0x47b3e7
push ebp
push eax
push eax
lea edx, [esp + 0x1f]
push edx
call fcn.005acf21
add esp, 0x10
cmp eax, 1
jne 0x47b3e7
push ebx
push 1
lea eax, [esp + 0x19]
push 1
push eax
call fcn.005ad23f
add esp, 0x10
cmp eax, 1
jne 0x47b3e7
push ebp
push eax
push eax
lea ecx, [esp + 0x1d]
push ecx
call fcn.005acf21
add esp, 0x10
cmp eax, 1
jne 0x47b3e7
mov al, byte [esp + 0x11]
test al, al
je 0x47ae92
movzx esi, al
xor edi, edi
test esi, esi
jle 0x47b3ca
jmp 0x47b380
cmp esi, 0x200
jle 0x47b38d
mov esi, 0x200
push ebx
push esi
lea edx, [esp + 0xe8]
push 1
push edx
call fcn.005ad23f
add esp, 0x10
cmp eax, esi
jne 0x47b3e7
push ebp
push esi
lea eax, [esp + 0xe8]
push 1
push eax
call fcn.005acf21
add esp, 0x10
cmp eax, esi
jne 0x47b3e7
mov al, byte [esp + 0x11]
add edi, esi
movzx esi, al
cmp edi, esi
jl 0x47b380
test al, al
jne 0x47b332
jmp 0x47ae92
push ebx
call fcn.005ac46d
add esp, 4
mov eax, 3
jmp 0x47b3fb
push ebx
call fcn.005ac46d
push ebp
call fcn.005ac46d
mov eax, 8
add esp, 8
mov ecx, dword [esp + 0xce0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005aac48
add esp, 0xcd4
ret