Function at 0x69058340
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, 0x68
mov edx, dword [ecx + 0x18]
mov esi, dword [ecx + 0x14]
mov edi, dword [ecx + 0x10]
movss xmm4, dword [ecx]
movss xmm3, dword [ecx + 4]
test edx, edx
movss xmm0, dword [ecx + 8]
sete al
movss xmm2, dword [ecx + 0xc]
test esi, esi
sete bl
or bl, al
test byte [0x6907a0e8], 8
jne 0x690586a0
test bl, bl
jne 0x69058777
cmp dword [esi + 8], 1
jne 0x69058777
pxor xmm1, xmm1
comiss xmm1, xmm4
ja 0x69058747
comiss xmm1, xmm3
ja 0x69058747
movups xmm1, xmm0
pxor xmm5, xmm5
cvtsi2ss xmm5, dword [esi + 0x38]
addss xmm1, xmm4
comiss xmm1, xmm5
ja 0x69058747
movups xmm1, xmm2
pxor xmm5, xmm5
cvtsi2ss xmm5, dword [esi + 0x3c]
addss xmm1, xmm3
comiss xmm1, xmm5
ja 0x69058747
test edi, edi
jne 0x690583ea
mov edi, dword [esi + 0x40]
addss xmm0, dword [0x69083ab0]
movq xmm6, qword [0x69083ac0]
movsd xmm5, qword [0x69083ab8]
pxor xmm1, xmm1
cvtss2sd xmm1, xmm0
movupd xmm0, xmm6
movupd xmm7, xmm1
andpd xmm7, xmm6
ucomisd xmm5, xmm7
ja 0x69058800
cvtsd2ss xmm1, xmm1
cvttss2si eax, xmm1
pxor xmm0, xmm0
addss xmm2, dword [0x69083ab0]
mov dword [ebp - 0x1c], eax
cvtss2sd xmm0, xmm2
movupd xmm2, xmm6
movupd xmm1, xmm0
andpd xmm1, xmm6
ucomisd xmm5, xmm1
ja 0x690587c0
cvtsd2ss xmm0, xmm0
cvttss2si eax, xmm0
xor ecx, ecx
mov dword [esp + 0x14], edx
mov dword [ebp - 0x20], edx
xor edx, edx
mov dword [esp + 0x10], edx
mov dword [ebp - 0x24], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], ecx
movss dword [ebp - 0x2c], xmm3
mov dword [esp], eax
movss dword [ebp - 0x28], xmm4
call sym.gdiplus.dll_GdipCreateBitmapFromScan0
mov edx, dword [ebp - 0x20]
sub esp, 0x18
test eax, eax
mov ebx, eax
jne 0x690587a2
movss xmm3, dword [ebp - 0x2c]
movq xmm6, qword [0x69083ac0]
movsd xmm5, qword [0x69083ab8]
mov eax, dword [esi + 0x28]
movupd xmm1, xmm6
mov edi, dword [esi + 0x54]
addss xmm3, dword [0x69083ab0]
movss xmm4, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x30], edi
cvtss2sd xmm3, xmm3
mov edi, dword [esi + 0x58]
movupd xmm0, xmm3
andpd xmm0, xmm6
ucomisd xmm5, xmm0
jbe 0x69058513
andnpd xmm1, xmm3
addsd xmm0, xmm5
movsd xmm2, qword [0x69083ad0]
subsd xmm0, xmm5
orpd xmm0, xmm1
movupd xmm1, xmm0
cmpnlesd xmm1, xmm3
movupd xmm3, xmm0
andpd xmm1, xmm2
subsd xmm3, xmm1
cvtsd2ss xmm3, xmm3
cvttss2si ecx, xmm3
imul ecx, edi
test eax, eax
mov dword [ebp - 0x28], ecx
mov ecx, 0x18
je 0x6905852d
movzx ecx, ah
addss xmm4, dword [0x69083ab0]
cvtss2sd xmm4, xmm4
movupd xmm0, xmm4
andpd xmm0, xmm6
ucomisd xmm5, xmm0
jbe 0x69058574
andnpd xmm6, xmm4
addsd xmm0, xmm5
movsd xmm2, qword [0x69083ad0]
subsd xmm0, xmm5
orpd xmm0, xmm6
movupd xmm1, xmm0
cmpnlesd xmm1, xmm4
movupd xmm4, xmm0
andpd xmm1, xmm2
subsd xmm4, xmm1
cvtsd2ss xmm4, xmm4
mov dword [ebp - 0x2c], edx
mov ebx, dword [edx]
mov dword [esp + 0x20], eax
mov edx, dword [ebp - 0x20]
cvttss2si eax, xmm4
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], edx
imul eax, ecx
lea ecx, [eax + 7]
test eax, eax
cmovns ecx, eax
mov eax, dword [ebp - 0x28]
sar ecx, 3
add ecx, eax
mov eax, dword [ebp - 0x30]
add ecx, eax
mov dword [esp + 0x1c], ecx
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x54]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x58]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._convert_pixels
mov edx, dword [ebp - 0x2c]
test eax, eax
mov ebx, eax
jne 0x69058838
mov dword [ebp - 0x20], edx
mov esi, dword [esi + 0x28]
test esi, esi
je 0x6905877c
mov ecx, dword [esi + 4]
mov edi, 8
mov dword [esp + 4], edi
mov eax, dword fs:[0x18]
lea ecx, [ecx*4 + 8]
mov dword [esp + 8], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
sub esp, 0xc
test eax, eax
je 0x6905878c
mov eax, dword [esi]
mov edi, dword [ebp - 0x1c]
mov dword [edi], eax
mov eax, dword [esi + 4]
add edi, 8
mov dword [edi - 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax*4]
lea eax, [esi + 8]
cmp ecx, 8
jae 0x69058850
mov esi, eax
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x20], edx
mov eax, dword fs:[0x18]
mov ecx, dword [edx]
xor edx, edx
mov ecx, dword [ecx + 0x28]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x1c]
mov eax, dword [edx]
sub esp, 0xc
mov dword [eax + 0x28], edi
jmp 0x6905877c
mov dword [esp + 0x38], edx
mov eax, str.__f__f__f__f_0x_x__p__p__n
pxor xmm1, xmm1
mov dword [esp + 0xc], eax
mov eax, str.GdipCloneBitmapArea
cvtss2sd xmm1, xmm2
mov dword [esp + 8], eax
mov eax, 0x6907a0e8
movsd qword [esp + 0x28], xmm1
mov dword [esp + 0x34], esi
pxor xmm1, xmm1
cvtss2sd xmm1, xmm0
mov dword [esp + 0x30], edi
movsd qword [esp + 0x20], xmm1
pxor xmm1, xmm1
mov dword [esp + 4], eax
cvtss2sd xmm1, xmm3
movsd qword [esp + 0x18], xmm1
mov dword [esp], 3
pxor xmm1, xmm1
cvtss2sd xmm1, xmm4
movss dword [ebp - 0x28], xmm2
movsd qword [esp + 0x10], xmm1
movss dword [ebp - 0x24], xmm0
movss dword [ebp - 0x20], xmm3
movss dword [ebp - 0x1c], xmm4
mov dword [ebp - 0x2c], edx
call sym._wine_dbg_log.constprop.0_6
test bl, bl
mov edx, dword [ebp - 0x2c]
movss xmm4, dword [ebp - 0x1c]
movss xmm3, dword [ebp - 0x20]
movss xmm0, dword [ebp - 0x24]
movss xmm2, dword [ebp - 0x28]
jne 0x69058747
cmp dword [esi + 8], 1
je 0x6905839b
test byte [0x6907a0e8], 8
je 0x69058777
mov ebx, str.____InvalidParameter_n
mov esi, str.GdipCloneBitmapArea
mov dword [esp + 0xc], ebx
mov edi, 0x6907a0e8
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_6
mov ebx, 2
lea esp, [ebp - 0x10]
mov eax, ebx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x1c
mov dword [ebp - 0x1c], edx
mov eax, dword [edx]
mov ebx, 3
mov dword [esp], eax
call sym.gdiplus.dll_GdipDisposeImage
mov edx, dword [ebp - 0x1c]
push ecx
mov eax, ebx
mov dword [edx], 0
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x1c
andnpd xmm2, xmm0
addsd xmm1, xmm5
subsd xmm1, xmm5
orpd xmm1, xmm2
movsd xmm2, qword [0x69083ad0]
movupd xmm7, xmm1
cmpnlesd xmm7, xmm0
movupd xmm0, xmm7
andpd xmm0, xmm2
subsd xmm1, xmm0
movupd xmm0, xmm1
jmp 0x69058451
andnpd xmm0, xmm1
addsd xmm7, xmm5
subsd xmm7, xmm5
orpd xmm7, xmm0
movupd xmm0, xmm7
cmpnlesd xmm0, xmm1
movsd xmm1, qword [0x69083ad0]
andpd xmm0, xmm1
subsd xmm7, xmm0
movupd xmm1, xmm7
jmp 0x69058420
mov dword [ebp - 0x1c], edx
mov eax, dword [edx]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDisposeImage
mov edx, dword [ebp - 0x1c]
sub esp, 4
jmp 0x690587a2
test edi, 1
jne 0x6905887f
test edi, 2
jne 0x69058892
test edi, 4
je 0x69058658
mov esi, dword [eax]
add edi, 4
add eax, 4
sub ecx, 4
mov dword [edi - 4], esi
jmp 0x69058658
mov edi, dword [ebp - 0x1c]
dec ecx
movzx eax, byte [esi + 8]
add edi, 9
mov byte [edi - 1], al
lea eax, [esi + 9]
jmp 0x69058858
movzx esi, word [eax]
add edi, 2
add eax, 2
sub ecx, 2
mov word [edi - 2], si
jmp 0x69058860