Function at 0x10002580
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x38
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x28], edi
mov word [ebp - 0x12], di
call sym._GetDOSEnvironment16_0
mov dword [esp], eax
call sym._MapSL_4
mov dword [ebp - 0x20], eax
movzx eax, di
sub esp, 4
mov edi, eax
mov dword [esp + 4], 0
mov dword [esp + 8], edi
mov dword [ebp - 0x30], eax
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]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
sub esp, 0xc
mov dword [esp + 4], eax
mov dword [esp], eax
call dword [sym.imp.user32.dll_CharToOemA]
sub esp, 8
test byte [0x10004930], 8
jne 0x100027a0
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
test al, al
je 0x1000286b
cmp word [ebp - 0x28], 0
je 0x10002708
movzx ecx, word [ebp - 0x12]
mov esi, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 0x24], ecx
sub ecx, 1
mov dword [ebp - 0x2c], ecx
jmp 0x1000264b
mov esi, dword [ebp - 0x10]
movzx edx, di
add edi, 1
mov byte [esi + edx], al
mov esi, ecx
movzx eax, byte [esi]
test al, al
je 0x100026f9
cmp di, word [ebp - 0x12]
jae 0x10002708
movzx edx, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x25
jne 0x10002628
test dl, dl
je 0x10002708
cmp dl, 0x25
je 0x10002708
mov dword [ebp - 0x1c], esi
mov ebx, ecx
lea esi, [esi]
mov esi, ebx
movzx eax, byte [ebx + 1]
add ebx, 1
cmp al, 0x25
setne dl
test al, al
je 0x10002686
test dl, dl
jne 0x10002670
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x1c]
mov eax, ebx
sub eax, esi
sub ax, 1
mov word [ebp - 0x1c], ax
je 0x10002708
test dl, dl
jne 0x10002708
mov byte [ebx], 0
mov eax, dword [ebp - 0x20]
mov edx, ecx
call dbg.SHELL_FindString
mov byte [ebx], 0x25
movzx ebx, di
test eax, eax
je 0x10002770
mov dword [esp], eax
mov dword [ebp - 0x1c], eax
call dword [sym.imp.ucrtbase.dll_strlen]
mov esi, eax
lea eax, [eax + ebx]
cmp eax, dword [ebp - 0x24]
jge 0x10002708
mov edx, dword [ebp - 0x1c]
add ebx, dword [ebp - 0x10]
mov dword [esp + 8], esi
add edi, esi
mov dword [esp], ebx
mov dword [esp + 4], edx
call sym._memcpy
mov esi, dword [ebp - 0x18]
movzx eax, byte [esi + 2]
add esi, 2
test al, al
jne 0x10002641
cmp word [ebp - 0x28], di
ja 0x10002830
lea esi, [esi]
nop
movzx eax, byte [global___dbch]
test al, 4
jne 0x10002800
test al, 8
jne 0x100027d0
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], eax
call dword [sym.imp.user32.dll_OemToCharA]
mov edi, dword [ebp - 0x10]
sub esp, 8
mov dword [esp + 8], edi
mov dword [esp + 4], 0
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_HeapFree]
mov eax, dword [ebp - 0x30]
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8
movzx eax, word [ebp - 0x1c]
lea edx, [eax + ebx + 1]
cmp edx, dword [ebp - 0x2c]
jge 0x10002708
add ebx, dword [ebp - 0x10]
add eax, 2
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], ebx
call sym._memcpy
movzx eax, word [ebp - 0x1c]
lea edi, [edi + eax + 2]
jmp 0x100026e7
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], str.accept__s_n
mov dword [esp + 8], str.DoEnvironmentSubst16
mov dword [esp + 0x10], eax
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x100025f5
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], str.___return__s_n
mov dword [esp + 8], str.DoEnvironmentSubst16
mov dword [esp + 0x10], eax
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x1000271f
mov dword [esp + 0xc], str.___Env_subst_aborted___string_too_short_or_invalid_input_n
mov dword [esp + 8], str.DoEnvironmentSubst16
mov dword [esp + 4], global___dbch
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
movzx eax, byte [global___dbch]
jmp 0x10002717
mov eax, dword [ebp - 0x10]
movzx ebx, di
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._memcpy
lea edx, [edi + 1]
mov eax, dword [ebp + 8]
movzx edx, dx
or edx, 0x10000
mov byte [eax + ebx], 0
movzx eax, byte [global___dbch]
mov dword [ebp - 0x30], edx
jmp 0x10002717
xor edi, edi
jmp 0x100026f9