Function at 0x405c40
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x4c
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x10]
mov ecx, ebx
mov dword [ebp - 0x20], eax
mov eax, esi
call fcn.00405370
test eax, eax
jns 0x405c98
cmp eax, 0x8007007e
jne 0x405c7c
mov ecx, dword [ebp - 0x24]
test ecx, ecx
jne 0x405e05
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], esi
call dword [sym.imp.shlwapi.dll_SHCreateStreamOnFileW]
sub esp, 0xc
test eax, eax
js 0x405cb8
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov eax, ebx
call fcn.00404970
mov edx, eax
test eax, eax
js 0x405cb8
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x2e
mov edi, dword [sym.imp.ucrtbase.dll_wcsrchr]
mov dword [esp], esi
call edi
mov edx, eax
test eax, eax
je 0x405e20
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov eax, 0xf
call fcn.00403040
mov edx, dword [ebp - 0x28]
test eax, eax
mov esi, eax
je 0x405de0
mov dword [esp + 4], 0x2c
mov dword [esp], eax
call edi
xor edx, edx
test eax, eax
je 0x405d28
xor edi, edi
add eax, 2
mov word [eax - 2], di
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcstol]
mov edx, eax
mov ecx, ebx
mov eax, esi
xor edi, edi
call fcn.00405370
mov edx, eax
mov dword [ebp - 0x2c], edx
mov ecx, dword fs:[0x18]
mov dword [esp + 8], esi
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 4], 0
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x28], ecx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov edx, dword [ebp - 0x2c]
mov eax, 1
sub esp, 0xc
test edx, edx
js 0x405d9d
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov eax, ebx
call fcn.00404970
mov edx, eax
shr eax, 0x1f
mov ecx, dword [ebp - 0x24]
test ecx, ecx
jne 0x405cab
test al, al
je 0x405cab
mov edx, 0xffff80fb
mov ecx, ebx
mov eax, str.user32
call fcn.00405370
mov edx, eax
test eax, eax
js 0x405cab
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00404970
mov ecx, str.open
mov eax, 2
call fcn.00403040
mov edi, eax
test eax, eax
je 0x405e20
xor edx, edx
mov ecx, ebx
call fcn.00405370
mov edx, eax
jmp 0x405d35
test byte [section..data], 4
jne 0x405e78
mov edx, 0x8007007e
jmp 0x405cab
mov dword [esp + 8], 0
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 4], 0
mov edi, dword fs:[0x18]
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov eax, 1
mov edx, 0x80070490
sub esp, 0xc
jmp 0x405d9d
mov eax, esi
shr eax, 0x10
je 0x405eca
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
push edx
push edx
test eax, eax
jne 0x405edf
mov eax, esi
call fcn.00401250
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Cant_find_file:__s__give_a_chance_to_parent_process_to_create_it_n
mov dword [esp + 8], str.open_icon
mov dword [esp + 4], 0x40c000
mov dword [esp], 2
call fcn.00401540
jmp 0x405e0e
movzx esi, si
mov dword [esp], str._04x
mov dword [esp + 4], esi
call fcn.00401430
jmp 0x405e9d
mov eax, str._invalid_
jmp 0x405e9d