Function at 0x69072e70
Capabilities:
Access peb ldr_data
Get kernel32 base address
Get process heap flags

Disassembly:
sub esp, 0x4c
mov dword [esp + 0x40], ebx
mov ebx, eax
mov eax, dword [eax]
mov dword [esp + 0x48], edi
mov edi, edx
mov dword [esp + 0x44], esi
cmp eax, 0x10000001
je 0x69072fbf
ja 0x69072f28
cmp eax, 0x10000000
jne 0x69072ff0
pxor xmm0, xmm0
ucomiss xmm0, dword [edx + 4]
jp 0x69072eb7
jne 0x69072eb7
ucomiss xmm0, dword [edx + 8]
jnp 0x69073018
mov dword [esp], 0
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
call sym.gdiplus.dll_GdipCreatePath
sub esp, 8
test eax, eax
mov esi, eax
jne 0x69072f38
movss xmm0, dword [ebx + 0x10]
mov eax, dword [esp + 0x30]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [ebx + 0xc]
mov dword [esp], eax
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebx + 8]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebx + 4]
movss dword [esp + 4], xmm0
call sym.gdiplus.dll_GdipAddPathRectangle
sub esp, 0x14
test eax, eax
mov esi, eax
je 0x69072f50
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeletePath
push eax
jmp 0x69072f38
sub eax, 0x10000002
cmp eax, 1
ja 0x69072ff0
xor esi, esi
mov eax, esi
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
add esp, 0x4c
ret
lea eax, [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipCreateRegionPath
sub esp, 8
mov esi, eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym.gdiplus.dll_GdipDeletePath
sub esp, 4
test esi, esi
jne 0x69072f38
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx + 4]
mov dword [ebx], ecx
mov ecx, dword [edx + 8]
mov dword [ebx + 4], ecx
mov ecx, dword [edx + 0xc]
mov dword [ebx + 8], ecx
mov ecx, dword [edx + 0x10]
mov dword [ebx + 0xc], ecx
mov eax, dword [edx + 0x14]
mov dword [esp + 8], edx
xor edx, edx
mov dword [esp + 4], edx
mov dword [ebx + 0x10], 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_HeapFree]
sub esp, 0xc
mov eax, dword [ebx + 4]
xor esi, esi
mov edx, dword [eax + 4]
test edx, edx
je 0x69072f38
mov dword [esp + 8], edx
mov eax, dword [eax + 8]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym.gdiplus.dll_GdipTransformMatrixPoints
sub esp, 0xc
mov esi, eax
jmp 0x69072f38
mov eax, dword [ebx + 4]
mov edx, edi
call sym._transform_region_element
test eax, eax
mov esi, eax
jne 0x69072f38
mov eax, dword [ebx + 8]
mov edx, edi
call sym._transform_region_element
mov esi, eax
jmp 0x69072f38
jne 0x69072eb7
movss xmm1, dword [ebx + 4]
mov ecx, 2
movss xmm0, dword [ebx + 8]
mov dword [esp + 8], ecx
lea eax, [esp + 0x30]
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x34], xmm0
addss xmm1, dword [ebx + 0xc]
addss xmm0, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov dword [esp], edx
movss dword [esp + 0x38], xmm1
movss dword [esp + 0x3c], xmm0
call sym.gdiplus.dll_GdipTransformMatrixPoints
sub esp, 0xc
test eax, eax
mov esi, eax
jne 0x69072f38
movss xmm1, dword [esp + 0x30]
movss xmm3, dword [esp + 0x38]
comiss xmm1, xmm3
ja 0x6907308a
movups xmm0, xmm3
movups xmm3, xmm1
movups xmm1, xmm0
movss xmm2, dword [esp + 0x34]
movss xmm0, dword [esp + 0x3c]
comiss xmm2, xmm0
jbe 0x690730a4
movups xmm4, xmm2
movups xmm2, xmm0
movups xmm0, xmm4
movss dword [ebx + 4], xmm3
subss xmm1, xmm3
movss dword [ebx + 8], xmm2
subss xmm0, xmm2
movss dword [ebx + 0xc], xmm1
movss dword [ebx + 0x10], xmm0
jmp 0x69072f38