Function at 0x690579b0
Capabilities:
Get process heap flags

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x498
mov eax, dword [ecx]
mov edi, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x450], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x454], eax
mov eax, dword [ecx + 0x14]
xor ecx, ecx
test byte [0x6907a0e8], 8
mov dword [ebp - 0x444], ecx
mov dword [ebp - 0x44c], eax
jne 0x69057d40
mov ebx, dword [ebp - 0x44c]
test ebx, ebx
je 0x69057da5
mov ecx, dword [ebp - 0x450]
test ecx, ecx
jle 0x69057dc0
mov eax, dword [ebp - 0x454]
test eax, eax
jle 0x69057dc0
test edx, edx
je 0x69057a58
test edi, 3
jne 0x69057dc0
test edi, edi
mov ebx, 2
jne 0x69057a58
lea esp, [ebp - 0x10]
mov eax, ebx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x18
mov dword [esp], 0
mov dword [ebp - 0x458], edx
call dword [sym.imp.gdi32.dll_CreateCompatibleDC]
sub esp, 4
test eax, eax
mov ebx, eax
je 0x69057fa0
mov dword [esp], ebx
mov ecx, dword [sym.imp.gdi32.dll_GetDeviceCaps]
mov eax, 0x58
mov dword [esp + 4], eax
mov dword [ebp - 0x45c], ecx
call ecx
pxor xmm0, xmm0
mov ecx, dword [ebp - 0x45c]
cvtsi2ss xmm0, eax
sub esp, 8
mov dword [esp], ebx
mov eax, 0x5a
mov dword [esp + 4], eax
movss dword [ebp - 0x460], xmm0
call ecx
pxor xmm1, xmm1
cvtsi2ss xmm1, eax
sub esp, 8
mov dword [esp], ebx
movss dword [ebp - 0x464], xmm1
call dword [sym.imp.gdi32.dll_DeleteDC]
mov edx, dword [ebp - 0x458]
sub esp, 4
test esi, esi
jne 0x69057de8
test edi, edi
jne 0x69057b03
mov eax, dword [ebp - 0x450]
lea eax, [eax + eax*2]
lea edi, [eax*8 + 7]
sar edi, 3
add edi, 3
and edi, 0xfffffffc
test edx, edx
je 0x69058110
mov dword [ebp - 0x444], edx
xor eax, eax
xor edx, edx
mov dword [ebp - 0x468], eax
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x458], eax
mov dword [ebp - 0x46c], edx
mov ecx, 8
mov edx, 0x74
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov eax, dword fs:[0x18]
mov dword [ebp - 0x45c], eax
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x458]
call eax
mov edx, dword [ebp - 0x46c]
mov ebx, eax
mov eax, dword [ebp - 0x44c]
sub esp, 0xc
test ebx, ebx
mov dword [eax], ebx
je 0x690581e5
mov dword [ebx + 0x4c], edx
mov eax, dword [0x69082ea4]
cmp esi, 0x30101
movss xmm2, dword [ebp - 0x460]
sete dl
movss xmm3, dword [ebp - 0x464]
cmp esi, 0x30402
mov dword [ebx + 8], 1
mov dword [ebx + 0xc], eax
mov eax, dword [0x69082ea8]
movss dword [ebx + 0x2c], xmm2
movss dword [ebx + 0x30], xmm3
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x10], eax
mov eax, dword [0x69082eac]
mov dword [ebx + 0x20], 1
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x14], eax
mov eax, dword [0x69082eb0]
mov dword [ebx + 0x40], esi
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0x450]
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x58], edi
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0x454]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0x444]
mov dword [ebx + 0x54], eax
mov eax, dword [ebp - 0x468]
mov dword [ebx + 0x5c], eax
sete al
mov dword [ebx + 0x6c], 0
or al, dl
cmp esi, 0x30803
mov dword [ebx + 0x70], 0
sete dl
or al, dl
test esi, 0xd0000
je 0x69057ee8
mov dword [ebx + 0x1c], 2
test al, al
je 0x69057cf0
mov eax, esi
movzx ecx, ah
mov eax, 4
mov dword [ebp - 0x450], ecx
shl eax, cl
add eax, 8
mov dword [esp + 8], eax
mov eax, 8
mov dword [esp + 4], eax
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x458]
call eax
mov ecx, dword [ebp - 0x450]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0x44c]
sub esp, 0xc
mov eax, dword [eax]
mov ebx, dword [eax + 0x28]
test ebx, ebx
je 0x690581c4
mov eax, 1
shl eax, cl
cmp esi, 0x30101
mov dword [ebp - 0x450], eax
mov dword [ebx + 4], eax
jne 0x690581a0
mov dword [ebx], 2
mov dword [ebx + 8], 0xff000000
mov dword [ebx + 0xc], 0xffffffff
lea esi, [esi]
xor ebx, ebx
test byte [0x6907a0e8], 8
je 0x69057a42
mov eax, dword [ebp - 0x44c]
mov esi, 0x690807a1
mov edi, str.GdipCreateBitmapFromScan0
mov eax, dword [eax]
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp], 3
mov dword [esp + 0x10], eax
mov eax, 0x6907a0e8
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0_6
jmp 0x69057a42
mov dword [esp + 0x24], eax
mov eax, dword [ebp - 0x454]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x450]
mov dword [esp], 3
mov dword [ebp - 0x458], edx
mov dword [esp + 0x10], eax
mov eax, str._d__d__d_0x_x__p__p_n
mov dword [esp + 0xc], eax
mov eax, str.GdipCreateBitmapFromScan0
mov dword [esp + 8], eax
mov eax, 0x6907a0e8
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0_6
mov ebx, dword [ebp - 0x44c]
mov edx, dword [ebp - 0x458]
test ebx, ebx
jne 0x69057a0d
lea esp, [ebp - 0x10]
mov ebx, 2
pop ecx
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x18
mov eax, dword [ebp - 0x44c]
mov ebx, 2
mov dword [eax], 0
lea esp, [ebp - 0x10]
mov eax, ebx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x18
mov ebx, dword [ebp - 0x450]
mov eax, esi
movzx ecx, ah
imul ebx, ecx
add ebx, 7
sar ebx, 3
add ebx, 3
and ebx, 0xfffffffc
test edi, edi
cmove edi, ebx
and eax, 0x70000
cmp eax, 0x20000
jne 0x69057b03
test edx, edx
jne 0x69057b0b
mov eax, dword [ebp - 0x450]
mov edi, 0x28
xor edx, edx
mov dword [ebp - 0x440], edi
xor edi, edi
mov word [ebp - 0x432], cx
xor ecx, ecx
mov dword [ebp - 0x420], edx
mov dword [ebp - 0x43c], eax
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x41c], ecx
mov dword [esp + 0x14], edi
mov dword [esp], 0
neg eax
mov dword [ebp - 0x438], eax
mov eax, 1
mov word [ebp - 0x434], ax
xor eax, eax
mov dword [ebp - 0x430], eax
xor eax, eax
mov dword [ebp - 0x42c], eax
xor eax, eax
mov dword [ebp - 0x428], eax
xor eax, eax
mov dword [ebp - 0x424], eax
xor eax, eax
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x444]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
lea eax, [ebp - 0x440]
mov dword [esp + 4], eax
call dword [sym.imp.gdi32.dll_CreateDIBSection]
sub esp, 0x18
test eax, eax
je 0x69057fa0
xor edx, edx
mov edi, ebx
mov dword [ebp - 0x468], edx
mov edx, eax
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x458], eax
jmp 0x69057b26
test al, al
je 0x69057cf0
test esi, esi
jne 0x69057c63
mov eax, 0x4000008
mov edx, 8
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x45c]
mov dword [esp + 4], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x458]
call eax
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0x44c]
sub esp, 0xc
mov eax, dword [eax]
mov ebx, dword [eax + 0x28]
test ebx, ebx
je 0x690581c4
mov dword [ebx + 4], 0x1000000
lea edx, [ebx + 8]
mov ecx, 0x1000000
mov dword [ebp - 0x450], ecx
mov esi, dword [ebp - 0x450]
xor eax, eax
jmp 0x69057f80
or ecx, 0x8000
mov dword [ebx + eax*4 + 8], ecx
test al, 4
je 0x69057f76
or dword [ebx + eax*4 + 8], 0x80
inc eax
cmp esi, eax
jbe 0x69057fb8
cmp eax, 7
ja 0x69057fb8
mov ecx, eax
and ecx, 1
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff800000
sub ecx, 0x800000
test al, 2
jne 0x69057f60
mov dword [ebx + eax*4 + 8], ecx
jmp 0x69057f6a
lea esp, [ebp - 0x10]
mov ebx, 1
pop ecx
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x18
mov edi, dword [ebp - 0x450]
cmp edi, 8
jbe 0x69057cf0
mov dword [edx + eax*4], 0xffc0c0c0
cmp edi, 9
jbe 0x69057cf0
mov esi, dword [ebp - 0x450]
mov eax, 9
mov ecx, 0xffff0000
mov dword [edx + 0x24], 0xff000000
jmp 0x6905800f
mov ecx, eax
mov edi, 0xff000000
mov dword [ebx + eax*4 + 8], edi
and ecx, 1
cmp ecx, 1
sbb ecx, ecx
and ecx, 0xff010000
sub ecx, 0x10000
test al, 2
je 0x69058019
or ecx, 0xff00
mov dword [ebx + eax*4 + 8], ecx
test al, 4
je 0x69058029
or dword [ebx + eax*4 + 8], 0xff
inc eax
cmp eax, 0xf
ja 0x69058033
cmp eax, esi
jb 0x69057ff0
cmp dword [ebp - 0x450], 0x10
jbe 0x69057cf0
mov ecx, dword [ebp - 0x450]
mov eax, 0x10
lea esi, [esi]
nop
xor esi, esi
mov dword [ebx + eax*4 + 8], esi
inc eax
cmp eax, 0x27
ja 0x69058060
cmp eax, ecx
jb 0x69058050
cmp dword [ebp - 0x450], 0x28
jbe 0x69057cf0
cmp dword [ebp - 0x450], 0x29
mov eax, 0xff000000
mov dword [edx + 0xa0], eax
mov edi, 0x29
jbe 0x69057cf0
lea esi, [esi]
lea esi, [edi - 0x28]
mov eax, 0xaaaaaaab
mul esi
mov eax, 0xaaaaaaab
shr edx, 2
mov ecx, edx
mul edx
shr edx, 2
lea eax, [edx + edx*2]
mov edx, ecx
add eax, eax
sub edx, eax
movzx eax, byte [edx + 0x69081c94]
lea edx, [ecx + ecx*2]
mov ecx, esi
add edx, edx
sub ecx, edx
movzx ecx, byte [ecx + 0x69081c94]
shl eax, 8
or ecx, eax
mov eax, 0x38e38e39
mul esi
shr edx, 3
movzx eax, byte [edx + 0x69081c94]
shl eax, 0x10
or ecx, eax
or ecx, 0xff000000
mov dword [ebx + edi*4 + 8], ecx
inc edi
cmp edi, 0xff
ja 0x69057cf0
cmp edi, dword [ebp - 0x450]
jb 0x69058090
jmp 0x69057cf0
mov dword [ebp - 0x45c], edx
mov eax, edi
sar eax, 0x1f
mov ecx, eax
xor ecx, edi
sub ecx, eax
mov eax, dword [ebp - 0x454]
mov ebx, dword fs:[0x18]
imul ecx, eax
mov eax, 8
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
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 - 0x458], eax
call eax
mov dword [ebp - 0x468], eax
sub esp, 0xc
test eax, eax
mov dword [ebp - 0x444], eax
mov ebx, eax
je 0x69058223
test edi, edi
mov edx, dword [ebp - 0x45c]
jns 0x69057b26
mov ecx, dword [ebp - 0x454]
mov eax, 1
sub eax, ecx
imul eax, edi
add eax, ebx
mov dword [ebp - 0x444], eax
jmp 0x69057b26
cmp esi, 0x30803
jne 0x690581ae
mov dword [ebx], 4
mov eax, dword [ebp - 0x450]
lea edx, [ebx + 8]
test eax, eax
jne 0x69057f4f
jmp 0x69057cf0
mov dword [esp], eax
mov ebx, 3
call sym.gdiplus.dll_GdipDisposeImage
mov eax, dword [ebp - 0x44c]
mov dword [eax], 0
sub esp, 4
jmp 0x69057a42
mov dword [esp], edx
mov ebx, 3
call dword [sym.imp.gdi32.dll_DeleteObject]
push eax
mov eax, dword [ebp - 0x468]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x45c]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x69057a42
mov ebx, 3
jmp 0x69057a42