Function at 0x6f509970
Capabilities:
Get process heap flags

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
mov eax, ecx
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x268
mov eax, dword [eax + 0x14]
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x240], eax
test byte [0x6f50d048], 8
jne 0x6f509c60
cmp word [edx + 0xc], 0
lea ecx, [edx + 0xc]
je 0x6f509cd5
mov eax, ecx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x6f5099c0
sub eax, ecx
sar eax, 1
inc eax
cmp word [esi], 0
je 0x6f509ce8
mov ecx, esi
lea esi, [esi]
add ecx, 2
cmp word [ecx], 0
jne 0x6f5099e0
sub ecx, esi
sar ecx, 1
add ecx, eax
mov dword [esp + 4], 0
add ecx, ecx
mov dword [ebp - 0x23c], edx
mov dword [esp + 8], ecx
mov ebx, dword fs:[0x18]
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x248], eax
call eax
mov edx, dword [ebp - 0x23c]
mov ebx, eax
sub esp, 0xc
xor eax, eax
lea esi, [esi]
movzx ecx, word [edx + eax + 0xc]
mov word [ebx + eax], cx
add eax, 2
test cx, cx
jne 0x6f509a30
movzx ecx, word [esi]
cmp cx, 0x2f
je 0x6f509bd0
cmp cx, 0x5c
je 0x6f509bd0
cmp word [ebx], 0
mov eax, ebx
je 0x6f509a83
mov eax, ebx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x6f509a68
add eax, 2
add esi, 2
mov word [eax - 2], cx
test cx, cx
je 0x6f509a92
movzx ecx, word [esi]
add eax, 2
add esi, 2
mov word [eax - 2], cx
test cx, cx
jne 0x6f509a80
movzx ecx, word [ebx]
mov eax, ebx
test cx, cx
je 0x6f509aba
lea esi, [esi]
cmp cx, 0x5c
jne 0x6f509aae
mov esi, 0x2f
mov word [eax], si
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x6f509aa0
cmp word [eax - 2], 0x2f
jne 0x6f509ac7
xor ecx, ecx
mov word [eax - 2], cx
test byte [0x6f50d048], 8
jne 0x6f509c20
lea esi, [ebp - 0x230]
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov eax, dword [edx + 8]
mov dword [ebp - 0x244], edx
mov dword [esp], eax
mov edi, dword fs:[0x18]
call sym._chm_resolve_object
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [ebp - 0x23c], eax
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x23c]
mov edx, dword [ebp - 0x244]
sub esp, 0xc
test eax, eax
jne 0x6f509d1d
mov dword [esp + 8], 0x230
mov dword [esp + 4], 0
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x244], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x248]
call eax
mov edx, dword [ebp - 0x244]
mov ecx, 0x86
mov dword [eax], sym._ITSS_IStream_QueryInterface_12
lea edi, [eax + 0x18]
mov ebx, eax
sub esp, 0xc
mov dword [eax + 4], 1
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
rep movsd dword es:[edi], dword [esi]
mov dword [eax + 8], edx
mov eax, dword [edx]
mov dword [esp], edx
call dword [eax + 4]
sub esp, 4
lock inc dword [section..bss]
test byte [0x6f50d048], 8
jne 0x6f509cf0
mov eax, dword [ebp - 0x240]
mov dword [eax], ebx
mov eax, dword [ebp - 0x23c]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x18
cmp word [ebx], 0
mov eax, ebx
je 0x6f509a83
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x6f509be0
sub eax, 2
cmp ebx, eax
jbe 0x6f509c09
jmp 0x6f509a60
sub eax, 2
xor edi, edi
mov word [eax + 2], di
cmp ebx, eax
ja 0x6f509a58
cmp word [eax], 0x2f
je 0x6f509bf8
cmp word [ebx], 0
mov eax, ebx
jne 0x6f509a60
jmp 0x6f509a83
mov eax, ebx
mov dword [ebp - 0x23c], edx
call sym._wine_dbgstr_wn.constprop.0_3
mov dword [esp + 0xc], str.Resolving__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.ITSS_IStorageImpl_OpenStream
mov dword [esp + 4], 0x6f50d048
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_3
mov edx, dword [ebp - 0x23c]
jmp 0x6f509ad4
mov eax, esi
mov dword [ebp - 0x244], ecx
mov dword [ebp - 0x23c], edx
call sym._wine_dbgstr_wn.constprop.0_3
mov edx, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x244]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], edx
mov edx, dword [ebp - 0x23c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str._p__s__p__lu__lu__p_n
mov dword [esp + 8], str.ITSS_IStorageImpl_OpenStream
mov dword [esp + 4], 0x6f50d048
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_3
mov edx, dword [ebp - 0x23c]
cmp word [edx + 0xc], 0
lea ecx, [edx + 0xc]
jne 0x6f5099bb
cmp word [esi], 0
mov eax, 1
jne 0x6f5099d8
lea esi, [esi]
xor ecx, ecx
jmp 0x6f5099ed
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str._____p_n
mov dword [esp + 8], str.ITSS_create_stream
mov dword [esp + 4], 0x6f50d048
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_3
jmp 0x6f509bab
mov dword [ebp - 0x23c], 0x80030002
test byte [0x6f50d048], 4
je 0x6f509bb3
mov dword [esp + 0xc], str.Could_not_resolve_object_n
mov dword [esp + 8], str.ITSS_IStorageImpl_OpenStream
mov dword [esp + 4], 0x6f50d048
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_3
jmp 0x6f509bb3