Function at 0x690198a0
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, 0xa8
mov esi, dword [ecx + 0xc]
mov eax, dword [ecx]
mov edx, dword [ecx + 0x1c]
mov ebx, dword [ecx + 4]
mov dword [ebp - 0x74], esi
mov esi, dword [ecx + 0x10]
mov dword [ebp - 0x48], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x78], edx
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x54], esi
mov esi, dword [ecx + 0x14]
mov dword [ebp - 0x44], eax
cmp eax, 0xffffffff
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x58], esi
mov esi, dword [ecx + 0x18]
je 0x69019ea7
lea eax, [eax + eax + 2]
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 [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x3c], eax
call eax
mov dword [ebp - 0x4c], eax
sub esp, 0xc
test eax, eax
je 0x69019ff3
mov edx, dword [ebp - 0x58]
mov eax, 0x69085f60
test edx, edx
cmovne eax, edx
test esi, esi
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
cvttss2si edx, dword [eax + 8]
cvttss2si ecx, dword [eax + 0xc]
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x60], ecx
jne 0x69019dba
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x40], eax
dec eax
je 0x69019ddf
mov dword [ebp - 0x34], 0
mov esi, dword [ebp - 0x44]
test esi, esi
jle 0x69019fcd
xor edi, edi
mov dword [ebp - 0x68], edi
xor esi, esi
xor ecx, ecx
mov byte [ebp - 0x81], 0
xor edx, edx
xor eax, eax
mov dword [ebp - 0x50], ecx
mov edi, esi
jmp 0x690199b9
cmp esi, 0x26
je 0x690199d4
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x68]
mov dword [ecx + edx*4], edi
inc edx
mov dword [ebp - 0x50], edx
mov byte [ebp - 0x81], 1
mov edx, dword [ebp - 0x4c]
mov word [edx + edi*2], si
inc edi
xor edx, edx
inc eax
cmp dword [ebp - 0x44], eax
jle 0x690199f3
movzx esi, word [ebx + eax*2]
cmp esi, 9
je 0x690199b3
cmp dword [ebp - 0x40], 1
mov cl, dl
sete byte [ebp - 0x3c]
and cl, 1
test byte [ebp - 0x3c], cl
jne 0x69019990
mov ecx, dword [ebp - 0x40]
xor dl, 1
test ecx, ecx
setne cl
test dl, cl
je 0x690199a2
cmp esi, 0x26
jne 0x690199a2
inc eax
mov edx, 1
cmp dword [ebp - 0x44], eax
jg 0x690199b9
cmp byte [ebp - 0x81], 0
mov esi, edi
mov dword [ebp - 0x64], edi
mov ecx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x68]
je 0x69019da7
mov dword [ebp - 0x34], esi
mov eax, esi
mov esi, dword [ebp - 0x58]
test eax, eax
mov esi, dword [esi + 8]
mov dword [ebp - 0x80], esi
je 0x69019da7
mov dword [ebp - 0x44], 0
mov edx, edi
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x70], ecx
lea esi, [esi]
lea esi, [esi]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x50], edx
mov esi, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x64]
lea edi, [esi + eax*2]
mov dword [esp + 4], edi
sub ecx, eax
mov dword [esp + 8], ecx
lea eax, [ebp - 0x30]
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x68], ecx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetTextExtentExPointW]
mov esi, dword [ebp - 0x38]
mov edx, dword [ebp - 0x50]
sub esp, 0x1c
test esi, esi
je 0x69019da5
mov ecx, dword [ebp - 0x68]
jle 0x69019dae
xor ebx, ebx
jmp 0x69019ac1
inc ebx
cmp esi, ebx
je 0x69019c78
cmp word [edi + ebx*2], 0xa
jne 0x69019ab8
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x50], ebx
mov dword [esp + 4], edi
lea eax, [ebp - 0x30]
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 8], ebx
mov dword [ebp - 0x68], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetTextExtentExPointW]
mov edx, dword [ebp - 0x40]
pxor xmm1, xmm1
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x60]
cvtsi2ss xmm1, dword [ebp - 0x30]
lea ecx, [eax + edx]
mov edx, dword [ebp - 0x68]
sub esp, 0x1c
cmp ecx, edi
movss dword [ebp - 0x20], xmm1
jle 0x69019c60
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
mov dword [ebp - 0x68], eax
test ah, 0x20
jne 0x69019da5
mov eax, edi
pxor xmm0, xmm0
sub eax, ecx
cvtsi2ss xmm0, eax
movss dword [ebp - 0x1c], xmm0
mov eax, dword [ebp - 0x54]
pxor xmm0, xmm0
cvtsi2ss xmm0, dword [ebp - 0x40]
addss xmm0, dword [eax + 4]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [eax]
mov eax, dword [ebp - 0x80]
cmp eax, 1
je 0x69019ca0
cmp eax, 2
jne 0x69019b81
mov eax, dword [ebp - 0x54]
addss xmm0, dword [eax + 8]
subss xmm0, xmm1
movss dword [ebp - 0x28], xmm0
mov ecx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x44]
cmp ecx, edi
jle 0x69019cd3
mov eax, dword [ebp - 0x3c]
add eax, ebx
jmp 0x69019ba9
inc edi
cmp ecx, edi
je 0x69019c90
cmp dword [edx + edi*4], eax
jl 0x69019ba0
mov ecx, dword [ebp - 0x44]
mov eax, edi
sub eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], edx
mov ecx, dword [ebp - 0x7c]
mov dword [esp + 0xc], ebx
mov ebx, dword [ebp - 0x3c]
lea eax, [edx + eax*4]
mov edx, dword [ebp - 0x58]
mov dword [esp + 0x24], eax
lea eax, [ebp - 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [ebp - 0x6c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], edx
mov edx, dword [ebp - 0x54]
mov dword [esp + 8], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
mov edx, dword [ebp - 0x74]
mov dword [esp + 0x10], edx
mov edx, dword [ebp - 0x4c]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x48]
mov dword [esp], edx
mov edx, dword [ebp - 0x78]
call edx
mov edx, dword [ebp - 0x44]
test eax, eax
jne 0x69019cf4
xor ecx, ecx
cmp esi, dword [ebp - 0x50]
setg cl
add ecx, dword [ebp - 0x38]
inc dword [ebp - 0x6c]
add ebx, ecx
mov ecx, dword [ebp - 0x2c]
add dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp - 0x40]
cmp dword [ebp - 0x60], ebx
jl 0x69019cf4
cmp esi, dword [ebp - 0x50]
je 0x69019ce0
mov ecx, dword [ebp - 0x3c]
cmp dword [ebp - 0x64], ecx
jle 0x69019cf4
mov dword [ebp - 0x44], edi
jmp 0x69019a50
pxor xmm0, xmm0
cvtsi2ss xmm0, eax
movss dword [ebp - 0x1c], xmm0
jmp 0x69019b4a
mov dword [ebp - 0x50], esi
cmp ecx, esi
jg 0x69019d50
mov ebx, esi
jmp 0x69019ace
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x44]
sub eax, ecx
jmp 0x69019bb5
mov eax, dword [ebp - 0x54]
movss xmm3, dword [0x6907fb54]
mov ecx, dword [ebp - 0x70]
mov edi, dword [ebp - 0x44]
movss xmm2, dword [eax + 8]
mulss xmm1, xmm3
mulss xmm2, xmm3
cmp ecx, edi
addss xmm0, xmm2
subss xmm0, xmm1
movss dword [ebp - 0x28], xmm0
jg 0x69019b94
mov edi, dword [ebp - 0x44]
xor eax, eax
jmp 0x69019bb5
mov esi, dword [ebp - 0x58]
mov esi, dword [esi]
mov dword [ebp - 0x44], esi
and esi, 0x1000
je 0x69019c46
mov edi, edx
mov ebx, eax
mov eax, dword [ebp - 0x4c]
mov edx, dword fs:[0x18]
mov dword [ebp - 0x3c], edx
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
xor edx, edx
sub esp, 0xc
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x3c]
mov dword [esp + 8], edi
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
lea esp, [ebp - 0x10]
mov eax, ebx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov eax, dword [ebp - 0x3c]
mov ecx, esi
mov ebx, dword [ebp - 0x4c]
add eax, esi
cmp word [ebx + eax*2], 0x20
je 0x69019f1e
mov eax, dword [ebp - 0x58]
mov ebx, esi
mov eax, dword [eax]
mov dword [ebp - 0x68], eax
test ah, 0x10
je 0x69019eda
mov eax, dword [ebp - 0x3c]
lea eax, [ecx + eax + 0x7fffffff]
mov ecx, dword [ebp - 0x4c]
movzx eax, word [ecx + eax*2]
cmp eax, 0x20
jne 0x69019d9b
nop
dec ebx
movzx eax, word [edi + ebx*2 - 2]
cmp eax, 0x20
je 0x69019d90
cmp eax, 9
je 0x69019d90
jmp 0x69019ace
mov edi, edx
xor ebx, ebx
jmp 0x69019cf8
mov dword [ebp - 0x50], 0
jmp 0x69019c7b
mov eax, 0x7fffffff
test edx, edx
cmove edx, eax
test ecx, ecx
mov dword [ebp - 0x5c], edx
cmovne eax, ecx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x40], eax
dec eax
jne 0x69019963
mov esi, dword [ebp - 0x44]
test esi, esi
jle 0x69019fc6
lea eax, [esi - 1]
cmp eax, 6
jbe 0x69019fe7
shr esi, 3
mov eax, ebx
pxor xmm1, xmm1
mov edx, esi
movdqu xmm4, xmmword [0x6907fbe0]
movdqu xmm3, xmmword [0x6907fbf0]
shl edx, 4
pxor xmm2, xmm2
add edx, ebx
lea esi, [esi]
movdqu xmm0, xmmword [eax]
add eax, 0x10
pcmpeqw xmm0, xmm4
movdqu xmm6, xmm2
pand xmm0, xmm3
cmp edx, eax
pcmpgtw xmm6, xmm0
movdqu xmm5, xmm0
punpcklwd xmm5, xmm6
paddd xmm1, xmm5
punpckhwd xmm0, xmm6
paddd xmm1, xmm0
jne 0x69019e20
mov esi, dword [ebp - 0x44]
movdqu xmm0, xmm1
psrldq xmm0, 8
paddd xmm0, xmm1
movdqu xmm1, xmm0
psrldq xmm1, 4
paddd xmm0, xmm1
mov edx, esi
movd eax, xmm0
and edx, 0xfffffff8
and esi, 7
je 0x69019e91
mov esi, dword [ebp - 0x44]
lea esi, [esi]
xor ecx, ecx
cmp word [ebx + edx*2], 0x26
sete cl
inc edx
add eax, ecx
cmp esi, edx
jg 0x69019e80
xor edi, edi
test eax, eax
jne 0x69019f46
mov dword [ebp - 0x34], 0
jmp 0x69019977
cmp word [ebx], 0
je 0x69019fd6
mov eax, ebx
lea esi, [esi]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x69019ec0
sub eax, ebx
mov edx, eax
add eax, 2
sar edx, 1
mov dword [ebp - 0x44], edx
jmp 0x690198f3
mov dword [ebp - 0x68], esi
movzx ecx, byte [ebp - 0x81]
xor eax, eax
jmp 0x69019f06
dec ebx
cmp word [edi + ebx*2], 9
je 0x69019fb5
test ebx, ebx
je 0x69019fa8
mov al, cl
cmp word [edi + ebx*2 - 2], 0x20
jne 0x69019ef0
test al, al
je 0x69019fbf
mov dword [ebp - 0x38], ebx
jmp 0x69019d90
lea eax, [esi + 1]
lea esi, [esi]
lea esi, [esi]
nop
mov ebx, eax
mov ecx, eax
cmp word [edi + ebx*2], 0x20
lea eax, [eax + 1]
je 0x69019f30
mov dword [ebp - 0x38], ebx
jmp 0x69019d78
shl eax, 2
mov edi, 8
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov esi, dword fs:[0x18]
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
call eax
sub esp, 0xc
test eax, eax
mov edi, eax
jne 0x69019e9b
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x4c]
mov ebx, 3
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x69019d3e
mov dword [ebp - 0x38], esi
mov ecx, dword [ebp - 0x68]
mov ebx, esi
jmp 0x69019d78
mov dword [ebp - 0x38], ebx
mov ecx, ebx
jmp 0x69019d78
mov ebx, esi
jmp 0x69019d90
mov dword [ebp - 0x34], 0
xor edi, edi
xor ebx, ebx
jmp 0x69019cf8
mov dword [ebp - 0x44], 0
mov eax, 2
jmp 0x690198f3
mov esi, dword [ebp - 0x44]
xor eax, eax
xor edx, edx
jmp 0x69019e80
mov ebx, 3
jmp 0x69019d3e