Function at 0x100023e8
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x138
movzx eax, byte [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
movzx esi, word [ebp + 0x14]
mov dword [ebp - 0x14], 0
test byte [0x1003c018], 8
movzx edx, al
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
jne 0x1000232e
movzx eax, si
mov dword [ebp - 0x10], eax
mov esi, dword [ebp + 8]
jmp 0x10002510
test edi, edi
je 0x10002359
mov dword [ebp - 0x18], edx
cmp edi, 0xffff
ja 0x10002363
movzx eax, di
push eax
push 0x10026e49
call dbg.wine_dbg_sprintf
add esp, 8
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x18]
jmp 0x100024b1
mov eax, str._null_
jmp 0x100024b1
push 0xffffffffffffffff
push edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrA]
mov ecx, eax
mov eax, str._invalid_
test ecx, ecx
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x18]
jne 0x100024b1
xor eax, eax
nop word cs:[eax + eax]
cmp byte [edi + eax], 0
lea eax, [eax + 1]
jne 0x10002390
mov byte [ebp - 0x144], 0x22
cmp eax, 1
jne 0x100023b7
lea esi, [ebp - 0x142]
mov byte [ebp - 0x143], 0x22
jmp 0x10002495
lea esi, [ebp - 0x143]
mov edx, edi
mov edi, 1
nop word cs:[eax + eax]
mov dword [ebp - 0x10], edi
movzx ebx, byte [edx]
movzx edi, bl
lea ecx, [edi - 9]
cmp ecx, 0x19
ja case.default.0x100023e1
jmp dword [ecx*4 + 0x10026020]
mov word [esi], 0x745c
jmp 0x1000244e
cmp edi, 0x5c
jne case.0x100023e1.11
mov word [esi], 0x5c5c
jmp 0x1000244e
mov ecx, ebx
add cl, 0x81
cmp cl, 0xa0
ja 0x10002472
mov byte [esi], 0x5c
mov ebx, dword [ebp - 0x10]
mov byte [ebp + ebx - 0x143], pe_nt_image_headers32
mov ecx, edi
shr ecx, 4
movzx ecx, byte [ecx + str.0123456789abcdef_04x]
mov byte [ebp + ebx - 0x142], cl
and edi, 0xf
movzx ecx, byte [edi + str.0123456789abcdef_04x]
mov edi, ebx
add edi, 4
mov byte [esi + 3], cl
jmp 0x10002454
mov word [esi], 0x725c
jmp 0x1000244e
mov word [esi], 0x225c
jmp 0x1000244e
mov word [esi], 0x6e5c
mov edi, dword [ebp - 0x10]
add edi, 2
dec eax
lea esi, [edi + ebp]
add esi, 0xfffffebc
cmp eax, 2
jl 0x1000247a
inc edx
cmp edi, 0x124
jl 0x100023d0
jmp 0x1000247a
mov edi, dword [ebp - 0x10]
inc edi
mov byte [esi], bl
jmp 0x10002454
mov byte [esi], 0x22
cmp eax, 3
jl 0x10002491
mov word [esi + 1], 0x2e2e
mov byte [esi + 3], 0x2e
add esi, 4
jmp 0x10002492
inc esi
mov ebx, dword [ebp + 0xc]
mov byte [esi], 0
lea eax, [ebp - 0x144]
push eax
call dbg.__wine_dbg_strdup
add esp, 4
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x18]
movzx esi, word [ebp + 0x14]
movzx esi, si
sub esp, 0x30
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x20], eax
mov dword [ebp - 0x10], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], ebx
mov esi, dword [ebp + 8]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.__p____0x_08lx___s___d___ld___ld___d___p__n
mov dword [esp + 8], str.IXACT3EngineImpl_PrepareWave
mov dword [esp], 3
mov ebx, ecx
mov edi, edx
call dbg.wine_dbg_log
mov edx, edi
mov ecx, ebx
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
add esp, 0x30
lea eax, [ebp - 0x14]
push eax
push edx
push ecx
push dword [ebp + 0x18]
push dword [ebp - 0x10]
push edi
push ebx
push dword [esi + 4]
call dbg.FACTAudioEngine_PrepareWave
add esp, 0x20
mov ecx, eax
mov edx, dword [ebp - 0x14]
test eax, eax
jne 0x100025c4
test edx, edx
je 0x100025c4
mov ebx, esi
mov esi, dword fs:[0x18]
mov eax, dword [esi + 0x30]
push 0xc
push 8
push dword [eax + 0x18]
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [ebp - 0x14]
test eax, eax
je 0x10002603
mov edi, eax
mov ecx, ebx
push eax
call dbg.wrapper_add_entry
add esp, 4
test eax, eax
js 0x10002613
mov dword [edi], dbg._IXACT3WaveImpl_Destroy_4
mov eax, dword [ebp - 0x14]
mov dword [edi + 4], eax
mov dword [edi + 8], ebx
mov eax, dword [ebp + 0x24]
mov dword [eax], edi
xor eax, eax
test byte [0x1003c018], 8
je 0x10002631
sub esp, 0x14
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.Created_Wave:__p_n
mov dword [esp + 8], str.IXACT3EngineImpl_PrepareWave
mov dword [esp], 3
call dbg.wine_dbg_log
xor eax, eax
add esp, 0x14
jmp 0x10002631
mov eax, 0x80004005
test byte [0x1003c018], 2
je 0x10002631
sub esp, 0x18
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str.Failed_to_CreateWave:__d___p__n
mov dword [esp + 8], str.IXACT3EngineImpl_PrepareWave
mov dword [esp], 1
call dbg.wine_dbg_log
mov eax, 0x80004005
add esp, 0x18
jmp 0x10002631
push edx
call dbg.FACTWave_Destroy
add esp, 4
mov eax, 0x8007000e
jmp 0x10002631
push dword [ebp - 0x14]
mov ebx, eax
call dbg.FACTWave_Destroy
add esp, 4
mov eax, dword [esi + 0x30]
push edi
push 0
push dword [eax + 0x18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, ebx
add esp, 0x138
pop esi
pop edi
pop ebx
pop ebp
ret 0x20