Function at 0x69055c60
Capabilities:
Get process heap flags

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov esi, dword [esp + 0x84]
lea edx, [esp + 0x58]
mov eax, dword [esi]
mov dword [esp + 4], edx
mov dword [esp], esi
call dword [eax + 0x30]
sub esp, 8
mov eax, dword [esp + 0x58]
cmp eax, 1
ja 0x690560b8
lea eax, [esp + 0x4c]
xor ebp, ebp
mov dword [esp + 0x2c], eax
mov eax, dword [esi]
lea ecx, [esp + 0x50]
mov edx, 0x69082514
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], esi
call dword [eax]
sub esp, 0xc
test eax, eax
jne 0x69055fe0
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x5c]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 8
test eax, eax
jne 0x69056060
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x6905641d
mov ecx, dword [sym.imp.kernel32.dll_HeapFree]
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x20], eax
xor eax, eax
xor edi, edi
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x54]
mov dword [esp + 0x84], esi
mov esi, ebx
mov ebx, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], ebp
mov ecx, dword fs:[0x18]
mov dword [esp + 0x38], ecx
lea esi, [esi]
lea esi, [esi]
nop
mov eax, dword [esp + 0x50]
mov edx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x14]
sub esp, 0xc
test edi, edi
sete byte [esp + 0x24]
test eax, eax
jne 0x69055d9c
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x54]
test eax, eax
je 0x690561d0
cmp dword [esp + 0x58], 1
seta al
and al, byte [esp + 0x24]
mov byte [esp + 0x33], al
jne 0x69056290
mov eax, dword [esp + 0x18]
test eax, eax
je 0x69056220
mov eax, dword [esp + 0x20]
test eax, eax
je 0x69056200
mov eax, dword [ebp]
mov dword [esp], ebp
call dword [eax + 8]
sub esp, 4
inc esi
cmp dword [esp + 0x5c], esi
ja 0x69055d30
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x50]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
cmp dword [esp + 0x58], 1
ja 0x690561c0
test ebp, ebp
je 0x69055dda
mov eax, dword [esp + 0x80]
mov edx, ebp
call sym._add_property
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x69055df0
mov edx, eax
mov eax, dword [esp + 0x80]
call sym._add_property
test edi, edi
je 0x69055e02
mov eax, dword [esp + 0x80]
mov edx, edi
call sym._add_property
mov eax, dword [esp + 0x20]
test eax, eax
je 0x69055e18
mov edx, eax
mov eax, dword [esp + 0x80]
call sym._add_property
mov eax, dword [esp + 0x18]
test eax, eax
je 0x690560a7
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x80]
call sym._add_property
mov dword [esp + 8], ebp
xor eax, eax
mov ebp, dword [esp + 0x28]
mov dword [esp + 4], eax
mov ebx, dword fs:[0x18]
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebp
sub esp, 0xc
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebp
xor eax, eax
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebp
sub esp, 0xc
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebp
sub esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebp
mov eax, dword [esi]
xor edx, edx
sub esp, 0xc
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x2c]
mov dword [esp], esi
mov dword [esp + 8], ecx
call dword [eax + 0x34]
sub esp, 0xc
test eax, eax
jne 0x69055fd6
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x50]
mov ebp, 0x69082514
xor esi, esi
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], ebp
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
test eax, eax
jne 0x69055fa5
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x5c]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 8
test eax, eax
mov eax, dword [esp + 0x50]
mov edx, dword [eax]
jne 0x690561a8
mov edi, dword [esp + 0x5c]
lea ecx, [esp + 0x54]
xor ebx, ebx
test edi, edi
je 0x690561a8
mov edi, ecx
lea esi, [esi]
lea esi, [esi]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [edx + 0x14]
sub esp, 0xc
test eax, eax
jne 0x69055f7d
test esi, esi
mov ebp, dword [esp + 0x54]
je 0x69056250
mov eax, dword [ebp]
mov dword [esp], ebp
call dword [eax + 8]
sub esp, 4
mov eax, dword [esp + 0x50]
inc ebx
cmp dword [esp + 0x5c], ebx
mov edx, dword [eax]
ja 0x69055f50
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
test esi, esi
je 0x69055fa5
mov eax, dword [esp + 0x80]
mov edx, esi
call sym._add_property
mov dword [esp + 8], esi
xor edx, edx
mov dword [esp + 4], edx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call eax
sub esp, 0xc
mov eax, dword [esp + 0x4c]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [esp + 0x58], 1
jbe 0x6905607a
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x20], edx
xor ebx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], eax
mov edx, 0x12
mov ecx, 8
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
test eax, eax
mov edi, eax
je 0x69055dc8
mov word [eax + 8], 3
lea eax, [eax + 0x10]
mov dword [eax - 0x10], 0x5101
mov dword [eax - 0xc], 2
mov dword [edi + 0xc], eax
mov word [edi + 0x10], 1
jmp 0x69055dc8
mov eax, dword [esp + 0x50]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
cmp dword [esp + 0x58], 1
ja 0x69055feb
test ebp, ebp
je 0x69056180
mov eax, dword [esp + 0x80]
mov edx, ebp
xor edi, edi
call sym._add_property
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 0x1c], edi
xor edi, edi
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x69055e34
lea eax, [eax*4 + 0x10]
mov ebx, 8
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
test eax, eax
mov ebp, eax
je 0x69055c8e
mov word [eax + 8], 4
mov dword [eax], 0x5100
mov eax, dword [esp + 0x58]
lea edx, [eax*4]
test eax, eax
mov dword [ebp + 4], edx
lea edx, [ebp + 0x10]
mov dword [ebp + 0xc], edx
je 0x69056410
lea edi, [esp + 0x4c]
xor ebx, ebx
mov dword [esp + 0x2c], edi
jmp 0x69056139
xor ecx, ecx
mov dword [ebp + ebx*4 + 0x10], ecx
inc ebx
cmp dword [esp + 0x58], ebx
jbe 0x69055c98
mov eax, dword [esi]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], esi
call dword [eax + 0x34]
sub esp, 0xc
test eax, eax
jne 0x69056128
mov eax, dword [esp + 0x4c]
mov ecx, str.Delay
mov edx, 0x69082c64
call sym._get_gif_frame_property
mov dword [ebp + ebx*4 + 0x10], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
jmp 0x6905612e
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x18], edi
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], eax
jmp 0x69055e34
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
jmp 0x69055fa5
cmp byte [esp + 0x24], 0
je 0x69055dc8
jmp 0x69056006
mov ecx, str.TextEntry
mov edx, 0x69082c44
mov eax, ebp
call sym._get_property
mov dword [esp + 0x1c], eax
test eax, eax
je 0x690561f3
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x9286
mov ebp, dword [esp + 0x54]
jmp 0x69055d62
mov eax, dword [esp + 0x84]
mov edx, ebp
call sym._get_gif_palette
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x20], eax
jmp 0x69055d90
mov ecx, str.BackgroundColorIndex
mov edx, 0x69082c74
mov eax, ebp
call sym._get_property
mov dword [esp + 0x18], eax
test eax, eax
je 0x69056243
mov eax, dword [esp + 0x18]
mov dword [eax], 0x5103
mov ebp, dword [esp + 0x54]
jmp 0x69055d84
mov ecx, str.TransparencyFlag
mov edx, 0x69082c64
mov eax, ebp
call sym._get_bool_property
test eax, eax
je 0x69056282
mov ecx, str.TransparentColorIndex
mov edx, 0x69082c64
mov eax, ebp
call sym._get_property
test eax, eax
mov esi, eax
je 0x69056282
mov dword [eax], 0x5104
mov ebp, dword [esp + 0x54]
jmp 0x69055f71
mov ecx, str.Application
mov edx, 0x69082c54
mov eax, ebp
call sym._get_property
mov dword [esp + 0x24], eax
test eax, eax
je 0x690563b0
mov eax, dword [esp + 0x24]
cmp word [eax + 8], 1
jne 0x690563b0
cmp dword [eax + 4], 0xb
jne 0x690563b0
mov eax, dword [eax + 0xc]
cmp dword [eax], 0x5354454e
je 0x69056444
cmp dword [eax], 0x4d494e41
jne 0x690563b0
cmp dword [eax + 4], 0x53545845
jne 0x690563b0
cmp word [eax + 8], 0x2e31
jne 0x690563b0
cmp byte [eax + 0xa], 0x30
jne 0x690563b0
mov eax, ebp
mov ecx, str.Data
mov edx, 0x69082c54
call sym._get_property
test eax, eax
mov ebp, eax
je 0x690563b0
xor edi, edi
cmp word [eax + 8], 1
jne 0x690563b4
cmp dword [eax + 4], 4
jne 0x690563b4
mov edx, dword [eax + 0xc]
cmp byte [edx], 3
jne 0x690563b4
cmp byte [edx + 1], 1
jne 0x690563b4
mov dword [esp + 0x3c], edx
mov ecx, 0x12
mov edi, 8
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
test eax, eax
mov edi, eax
je 0x690563b4
mov word [eax + 8], 3
mov edx, dword [esp + 0x3c]
lea eax, [eax + 0x10]
mov dword [eax - 0x10], 0x5101
mov dword [eax - 0xc], 2
mov dword [edi + 0xc], eax
mov byte [esp + 0x33], 0
movzx eax, byte [edx + 3]
movzx edx, byte [edx + 2]
shl eax, 8
or eax, edx
mov word [edi + 0x10], ax
jmp 0x690563b4
xor edi, edi
xor ebp, ebp
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
xor edx, edx
sub esp, 0xc
mov dword [esp + 8], ebp
mov eax, dword [esp + 0x38]
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
sub esp, 0xc
movzx eax, byte [esp + 0x33]
mov ebp, dword [esp + 0x54]
mov byte [esp + 0x24], al
jmp 0x69055d78
lea eax, [esp + 0x4c]
mov dword [esp + 0x2c], eax
jmp 0x69055c98
mov byte [esp + 0x24], 1
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x18], eax
xor eax, eax
xor edi, edi
mov dword [esp + 0x1c], eax
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], eax
jmp 0x69055dae
cmp dword [eax + 4], 0x45504143
jne 0x690562d5
cmp word [eax + 8], 0x2e32
jne 0x690562d5
cmp byte [eax + 0xa], 0x30
jne 0x690562d5
jmp 0x69056304