Function at 0x64a5a830
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x9c
mov ebx, dword [ebp + 0x10]
cmp ebx, 0xffffffff
je 0x64a5adba
lea eax, [ebx + ebx + 2]
mov dword [esp + 8], eax
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 4], 8
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov dword [ebp - 0x4c], eax
sub esp, 0xc
test eax, eax
je 0x64a5ae6d
mov eax, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x20]
test eax, eax
mov eax, 0x64ac0de0
cmovne eax, dword [ebp + 0x1c]
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x18]
fld dword [eax + 8]
fnstcw word [ebp - 0x3a]
movzx eax, word [ebp - 0x3a]
or ah, 0xc
mov word [ebp - 0x3c], ax
mov eax, dword [ebp + 0x18]
fldcw word [ebp - 0x3c]
fistp dword [ebp - 0x40]
fldcw word [ebp - 0x3a]
mov edx, dword [ebp - 0x40]
fld dword [eax + 0xc]
fldcw word [ebp - 0x3c]
fistp dword [ebp - 0x40]
fldcw word [ebp - 0x3a]
mov dword [ebp - 0x54], edx
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x58], ecx
test edi, edi
jne 0x64a5ad54
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x40], eax
cmp eax, 1
je 0x64a5ad7b
mov dword [ebp - 0x34], 0
test ebx, ebx
jle 0x64a5ae39
lea ecx, [ebx + ebx]
xor edi, edi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x44], edi
xor edx, edx
mov dword [ebp - 0x68], 0
mov edi, dword [ebp - 0x40]
lea esi, [eax + ecx]
xor ecx, ecx
jmp 0x64a5a950
test ecx, ecx
je 0x64a5a95e
cmp bx, 0x26
je 0x64a5a937
mov ecx, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x44]
mov dword [ebx + ecx*4], edx
add ecx, 1
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x68], ecx
movzx ebx, word [eax]
mov ecx, dword [ebp - 0x4c]
mov word [ecx + edx*2], bx
mov edx, dword [ebp - 0x34]
xor ecx, ecx
add edx, 1
mov dword [ebp - 0x34], edx
add eax, 2
cmp eax, esi
je 0x64a5a97e
movzx ebx, word [eax]
cmp bx, 9
je 0x64a5a949
cmp edi, 1
je 0x64a5a918
xor ecx, 1
test edi, edi
setne byte [ebp - 0x40]
test byte [ebp - 0x40], cl
je 0x64a5a937
mov ecx, 1
cmp bx, 0x26
jne 0x64a5a937
add eax, 2
cmp eax, esi
jne 0x64a5a950
mov eax, dword [ebp + 0x1c]
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x5c], edx
mov eax, dword [eax + 8]
mov dword [ebp - 0x6c], eax
test edx, edx
jle 0x64a5acc7
xor ecx, ecx
mov dword [ebp - 0x48], 0
mov edx, edi
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x5c]
lea esi, [esi]
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x50], edx
mov dword [esp + 0x14], 0
sub ecx, eax
lea edi, [esi + eax*2]
lea eax, [ebp - 0x30]
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x54]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [ebp - 0x64], ecx
mov dword [esp + 4], edi
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._GetTextExtentExPointW_28
mov esi, dword [ebp - 0x38]
mov edx, dword [ebp - 0x50]
sub esp, 0x1c
test esi, esi
je 0x64a5acc5
jle 0x64a5ad1d
mov ecx, dword [ebp - 0x64]
xor ebx, ebx
jmp 0x64a5aa2b
add ebx, 1
cmp esi, ebx
je 0x64a5abd0
cmp word [edi + ebx*2], 0xa
jne 0x64a5aa20
cmp esi, ebx
jle 0x64a5ae77
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x50], ebx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x64], edx
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x34]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x54]
mov dword [esp + 4], edi
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._GetTextExtentExPointW_28
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x2c]
fild dword [ebp - 0x30]
mov edi, dword [ebp - 0x58]
sub esp, 0x1c
lea ecx, [eax + edx]
mov edx, dword [ebp - 0x64]
cmp ecx, edi
fst dword [ebp - 0x20]
jle 0x64a5abc0
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
mov dword [ebp - 0x64], eax
test ah, 0x20
jne 0x64a5acc3
mov eax, edi
sub eax, ecx
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
mov eax, dword [ebp + 0x18]
fstp dword [ebp - 0x1c]
fild dword [ebp - 0x44]
fadd dword [eax + 4]
fstp dword [ebp - 0x24]
fld dword [eax]
mov eax, dword [ebp - 0x6c]
cmp eax, 1
je 0x64a5ac80
cmp eax, 2
jne 0x64a5aae0
mov eax, dword [ebp + 0x18]
fadd dword [eax + 8]
fsubrp st(1)
jmp 0x64a5aae2
fstp st(1)
mov ecx, dword [ebp - 0x68]
mov edi, dword [ebp - 0x48]
fstp dword [ebp - 0x28]
cmp ecx, edi
jle 0x64a5aca5
mov eax, dword [ebp - 0x40]
add eax, ebx
jmp 0x64a5ab0b
add edi, 1
cmp ecx, edi
je 0x64a5ac70
cmp dword [edx + edi*4], eax
jl 0x64a5ab00
mov ecx, dword [ebp - 0x48]
mov eax, edi
sub eax, ecx
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x48], edx
lea eax, [edx + eax*4]
mov dword [esp + 0x24], eax
lea eax, [ebp - 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 0x1c], eax
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x14], edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
mov ebx, dword [ebp - 0x40]
mov dword [esp + 8], ebx
mov edx, dword [ebp - 0x4c]
mov dword [esp + 4], edx
mov edx, dword [ebp + 8]
mov dword [esp], edx
call dword [ebp + 0x24]
mov edx, dword [ebp - 0x48]
test eax, eax
jne 0x64a5ae1c
xor eax, eax
cmp dword [ebp - 0x50], esi
setl al
add eax, dword [ebp - 0x38]
add dword [ebp - 0x60], 1
add ebx, eax
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x2c]
add dword [ebp - 0x44], ebx
mov ecx, dword [ebp - 0x44]
cmp dword [ebp - 0x58], ecx
jl 0x64a5acc5
cmp dword [ebp - 0x50], esi
je 0x64a5acb0
mov esi, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], esi
jge 0x64a5acc5
mov dword [ebp - 0x48], edi
mov ecx, esi
jmp 0x64a5a9b8
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
jmp 0x64a5aaae
mov dword [ebp - 0x50], esi
mov ebx, esi
cmp ecx, esi
jle 0x64a5aa40
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x4c]
add eax, esi
cmp word [ecx + eax*2], 0x20
je 0x64a5ad37
mov ebx, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x40]
mov ebx, dword [ebx]
lea eax, [esi + eax + 0x7fffffff]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x64], ebx
and bh, 0x10
movzx eax, word [ecx]
mov ebx, esi
jne 0x64a5ac20
jmp 0x64a5ac40
sub ebx, 1
movzx eax, word [edi + ebx*2 - 2]
cmp ax, 0x20
je 0x64a5ac18
cmp ax, 9
je 0x64a5ac18
jmp 0x64a5aa40
test ebx, ebx
je 0x64a5ae25
cmp word [edi + ebx*2 - 2], 0x20
je 0x64a5ac18
sub ebx, 1
mov dword [ebp - 0x38], ebx
cmp word [edi + ebx*2], 9
jne 0x64a5ac38
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x4c]
lea eax, [ebx + eax + 0x7fffffff]
movzx eax, word [ecx + eax*2]
jmp 0x64a5ac20
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x48]
sub eax, ecx
jmp 0x64a5ab17
mov eax, dword [ebp + 0x18]
fld dword [0x64ababb4]
mov ecx, dword [ebp - 0x68]
mov edi, dword [ebp - 0x48]
fld dword [eax + 8]
fmul st(1)
faddp st(2)
fmulp st(2)
fsubrp st(1)
fstp dword [ebp - 0x28]
cmp ecx, edi
jg 0x64a5aaf3
xor eax, eax
jmp 0x64a5ab17
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
test ah, 0x10
je 0x64a5aba7
jmp 0x64a5acc5
fstp st(0)
mov edi, edx
xor ebx, ebx
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x40], edx
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
sub esp, 0xc
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], 0
add eax, esi
cmp word [ecx + eax*2], 0x20
jne 0x64a5abf0
lea eax, [esi + 1]
lea esi, [esi]
mov ebx, eax
mov dword [ebp - 0x38], eax
lea eax, [eax + 1]
cmp word [edi + ebx*2], 0x20
je 0x64a5ad40
jmp 0x64a5ac55
mov eax, 0x7fffffff
test edx, edx
cmove edx, eax
test ecx, ecx
cmovne eax, ecx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x40], eax
cmp eax, 1
jne 0x64a5a8e4
test ebx, ebx
jle 0x64a5ae32
mov eax, dword [ebp + 0xc]
lea ecx, [ebx + ebx]
xor edx, edx
mov ebx, ecx
add ebx, eax
mov edi, ebx
lea esi, [esi]
xor ebx, ebx
cmp word [eax], 0x26
sete bl
add eax, 2
add edx, ebx
cmp edi, eax
jne 0x64a5ad98
test edx, edx
jne 0x64a5ade0
mov dword [ebp - 0x34], 0
jmp 0x64a5a8f6
mov eax, dword [ebp + 0xc]
cmp word [eax], 0
je 0x64a5ae40
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x64a5adc8
sub eax, dword [ebp + 0xc]
mov ebx, eax
add eax, 2
sar ebx, 1
jmp 0x64a5a84c
shl edx, 2
mov dword [ebp - 0x44], ecx
mov ebx, dword fs:[0x18]
mov dword [esp + 8], edx
mov dword [esp + 4], 8
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov ecx, dword [ebp - 0x44]
sub esp, 0xc
test eax, eax
mov edi, eax
je 0x64a5ae4c
mov dword [ebp - 0x34], 0
jmp 0x64a5a8f8
mov edi, edx
mov ebx, eax
jmp 0x64a5acc9
mov dword [ebp - 0x38], esi
mov ebx, esi
movzx eax, word [ecx]
jmp 0x64a5ac20
mov dword [ebp - 0x34], 0
xor edi, edi
jmp 0x64a5acc7
mov eax, 2
xor ebx, ebx
jmp 0x64a5a84c
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
mov ebx, 3
jmp 0x64a5ad13
mov dword [ebp - 0x50], ebx
jmp 0x64a5abd3