Function at 0x687c9540
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, ecx
push esi
mov esi, edx
push ebx
mov ebx, eax
sub esp, 0x5c
test byte [0x687da03c], 1
jne 0x687c97d0
mov edx, esi
mov eax, ebx
call fcn.687c8760
test eax, eax
mov dword [ebp - 0x3c], eax
je 0x687c98a9
mov eax, dword [ebx + 0x18]
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x2c], edi
lea edi, [ebx + 0x18]
mov dword [esp + 0x10], ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x28], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0x687c7870
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], edi
call dword [eax + 0x28]
mov eax, dword [ebx + 0x18]
lea ecx, [ebp - 0x30]
sub esp, 0x18
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], 0x687c7870
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], edi
call dword [eax + 0x90]
sub esp, 0x18
test esi, esi
jne 0x687c9720
test byte [0x687da03c], 8
jne 0x687c9751
mov eax, dword [ebx + 0x54]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], ecx
mov ecx, dword [ecx + 8]
mov edi, ecx
jmp 0x687c9618
mov eax, dword [edi + 8]
mov edx, dword [edi]
cmp esi, dword [eax + 0x20]
je 0x687c9680
cmp ecx, edx
je 0x687c961c
mov edi, edx
test edi, edi
jne 0x687c9608
movzx edx, byte [0x687da03c]
mov eax, dword [ebp - 0x3c]
test dl, 2
jne 0x687c9840
mov ecx, dword [eax + 0x30]
and edx, 1
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x687c9669
test dl, dl
jne 0x687c9788
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
mov dword [esp], eax
call ecx
movzx edx, byte [0x687da03c]
sub esp, 4
and edx, 1
xor ebx, ebx
test dl, dl
jne 0x687c9810
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [edi + 4]
test edx, edx
je 0x687c97c0
mov dword [edx + 4], eax
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov dword [eax], edx
mov edx, dword [edi + 8]
sub dword [edx + 4], 1
je 0x687c96b0
test byte [0x687da03c], 1
jne 0x687c9880
call sub.kernel32.dll_DebugBreak
mov eax, dword [edi + 8]
lea edx, [eax + 0x30]
mov eax, dword [eax + 0x2c]
call fcn.687c34c0
mov eax, dword [edi + 8]
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x3c], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sub.kernel32.dll_HeapFree
mov edx, dword [ebp - 0x3c]
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sub.kernel32.dll_HeapFree
mov eax, dword [ebx + 0x54]
movzx edx, byte [0x687da03c]
sub esp, 0xc
jmp 0x687c962f
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx]
test eax, eax
je 0x687c95e5
mov edx, dword [ebx + 0x18]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], edi
call dword [edx + 0x88]
sub esp, 0xc
test byte [0x687da03c], 8
je 0x687c95f2
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x687dcda3
mov dword [esp + 8], str.DP_DeleteGroup
mov dword [esp + 4], 0x687da03c
mov dword [esp], 3
call fcn.687c3970
jmp 0x687c95f2
mov dword [esp + 0xc], str.data.dwFlags_is_incorrect_n
mov dword [esp + 8], str.DP_IF_DestroyGroup
mov dword [esp + 4], 0x687da03c
mov dword [esp], 0
call fcn.687c3970
mov eax, dword [ebx + 0x54]
mov edx, dword [eax + 0x30]
mov ecx, dword [edx + 0x24]
jmp 0x687c9644
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 0xc], eax
jmp 0x687c968e
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.__p_____p_0x_08x__u_:_semi_stub_n
mov dword [esp + 8], str.DP_IF_DestroyGroup
mov dword [esp + 4], 0x687da03c
mov dword [esp], 0
call fcn.687c3970
jmp 0x687c955c
mov dword [esp + 0xc], str.Send_out_a_DESTORYPLAYERORGROUP_message_n
mov dword [esp + 8], str.DP_IF_DestroyGroup
mov dword [esp + 4], 0x687da03c
mov dword [esp], 0
call fcn.687c3970
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.DPID_0x_08x_not_found_n
mov dword [esp + 8], str.DP_DeleteGroup
mov dword [esp + 4], 0x687da03c
mov dword [esp], 1
call fcn.687c3970
mov eax, dword [ebx + 0x54]
movzx edx, byte [0x687da03c]
jmp 0x687c962f
mov dword [esp + 0xc], str.Why_is_this_not_the_last_reference_to_group__n
mov dword [esp + 8], str.DP_DeleteGroup
mov dword [esp + 4], 0x687da03c
mov dword [esp], 0
call fcn.687c3970
jmp 0x687c96ab
mov ebx, 0x88770096
jmp 0x687c9673