Function at 0x690605a0
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, 0x38
mov eax, dword [ecx]
test byte [0x6907a108], 8
mov ebx, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov dword [ebp - 0x1c], eax
jne 0x690607b8
test edi, edi
jle 0x690607f3
lea eax, [edi*8]
mov ecx, 8
mov dword [esp + 4], ecx
mov esi, eax
mov dword [esp + 8], esi
mov dword [ebp - 0x20], 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]
sub esp, 0xc
test eax, eax
mov esi, eax
je 0x69060817
cmp edi, 1
je 0x69060810
mov ecx, edi
mov edx, ebx
shr ecx, 1
shl ecx, 4
add ecx, eax
lea esi, [esi]
lea esi, [esi]
movdqu xmm5, xmmword [edx]
cvtdq2ps xmm0, xmm5
add eax, 0x10
add edx, 0x10
movlps qword [eax - 0x10], xmm0
movhps qword [eax - 8], xmm0
cmp eax, ecx
jne 0x69060630
mov eax, edi
and eax, 0xfffffffe
test edi, 1
je 0x69060678
shl eax, 3
pxor xmm0, xmm0
lea edx, [ebx + eax]
add eax, esi
cvtsi2ss xmm0, dword [edx]
movss dword [eax], xmm0
pxor xmm0, xmm0
cvtsi2ss xmm0, dword [edx + 4]
movss dword [eax + 4], xmm0
mov dword [esp + 8], edi
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], esi
mov dword [esp], eax
call sym.gdiplus.dll_GdipTransformMatrixPoints
sub esp, 0xc
test eax, eax
mov edi, eax
jne 0x69060783
mov eax, dword [ebp - 0x20]
lea edx, [esi + 4]
add ebx, 4
movss xmm3, dword [0x69084190]
movsd xmm4, qword [0x690841b0]
movsd xmm1, qword [0x69084198]
movsd xmm2, qword [0x690841a0]
movupd xmm5, xmm4
lea ecx, [esi + eax + 4]
lea esi, [esi]
movss xmm0, dword [edx - 4]
addss xmm0, xmm3
cvtss2sd xmm0, xmm0
movupd xmm6, xmm0
andpd xmm6, xmm2
ucomisd xmm1, xmm6
jbe 0x69060718
addsd xmm6, xmm1
movupd xmm7, xmm2
subsd xmm6, xmm1
andnpd xmm7, xmm0
orpd xmm6, xmm7
movupd xmm7, xmm6
cmpnlesd xmm7, xmm0
movupd xmm0, xmm7
andpd xmm0, xmm4
subsd xmm6, xmm0
movupd xmm0, xmm6
cvtsd2ss xmm0, xmm0
cvttss2si eax, xmm0
movss xmm0, dword [edx]
mov dword [ebx - 4], eax
addss xmm0, xmm3
cvtss2sd xmm0, xmm0
movupd xmm6, xmm0
andpd xmm6, xmm2
ucomisd xmm1, xmm6
jbe 0x6906076a
addsd xmm6, xmm1
movupd xmm7, xmm2
subsd xmm6, xmm1
andnpd xmm7, xmm0
orpd xmm6, xmm7
movupd xmm7, xmm6
cmpnlesd xmm7, xmm0
movupd xmm0, xmm7
andpd xmm0, xmm5
subsd xmm6, xmm0
movupd xmm0, xmm6
cvtsd2ss xmm0, xmm0
cvttss2si eax, xmm0
add edx, 8
add ebx, 8
mov dword [ebx - 8], eax
cmp ecx, edx
jne 0x690606d0
mov dword [esp + 8], esi
xor edx, edx
mov dword [esp + 4], edx
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]
sub esp, 0xc
lea esp, [ebp - 0x10]
mov eax, edi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0xc
mov dword [esp + 0x10], eax
mov eax, str.GdipTransformMatrixPointsI
mov esi, 0x69083ed6
mov dword [esp + 8], eax
mov eax, 0x6907a108
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_8
test edi, edi
jg 0x690605d4
lea esp, [ebp - 0x10]
mov edi, 2
pop ecx
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0xc
xor eax, eax
jmp 0x69060656
mov edi, 3
jmp 0x690607a5