Function at 0x64a72cd0
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x2c], edx
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x24], ecx
cmp eax, 4
je 0x64a73110
ja 0x64a72f78
cmp eax, 2
je 0x64a73130
cmp eax, 3
mov ebx, 0x64abb084
sete cl
sete al
movzx ecx, cl
movzx eax, al
lea edi, [ecx + ecx + 2]
lea eax, [eax*8 + 8]
mov dword [ebp - 0x38], edi
mov dword [esp + 8], eax
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov dword [ebp - 0x28], eax
sub esp, 0xc
test eax, eax
je 0x64a72eb9
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
xor eax, eax
mov edi, dword [ebp + 0xc]
nop
fld dword [edi + 8]
fmul dword [ebx + eax*4]
fstp dword [edx + eax*4]
add eax, 1
cmp eax, ecx
jne 0x64a72d60
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x2c]
mov dword [esp + 4], 8
mov ebx, dword fs:[0x18]
sub eax, edi
lea eax, [eax*8 + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov dword [ebp - 0x30], eax
sub esp, 0xc
test eax, eax
je 0x64a731c0
mov eax, dword [ebp + 8]
xor eax, 1
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x24], eax
jl 0x64a72e72
xor edx, edx
fldz
mov ebx, eax
xor edi, edi
mov dword [ebp - 0x1c], edx
lea esi, [esi]
nop
lea esi, [ebx - 1]
cmp dword [ebp - 0x2c], ebx
je 0x64a72fd8
mov eax, dword [ebp - 0x20]
lea edx, [ebx*8]
shl esi, 3
mov dword [ebp - 0x34], edx
mov eax, dword [eax + 8]
lea ecx, [eax + edx]
lea edx, [eax + esi]
fld dword [ecx + 4]
fsub dword [edx + 4]
fld dword [ecx]
fsub dword [edx]
fld st(1)
fmul st(2)
fld st(1)
fmul st(2)
faddp st(1)
fsqrt
fldz
fxch st(4)
fucomi st(4)
jp 0x64a72e23
je 0x64a72ee2
fstp st(4)
fxch st(1)
fxch st(2)
fxch st(3)
jmp 0x64a72e30
fstp st(4)
fxch st(1)
fxch st(2)
fxch st(3)
lea esi, [esi]
nop
mov ecx, dword [ebp - 0x28]
fld dword [ecx + edi*4]
fsub st(1)
fcomi st(2)
jbe 0x64a72ec8
fstp st(0)
fstp st(2)
fstp st(2)
test edi, 1
je 0x64a72f4e
faddp st(1)
add ebx, 1
cmp dword [ebp - 0x24], ebx
jge 0x64a72dd0
fstp st(0)
and edi, 1
mov edx, dword [ebp - 0x1c]
jne 0x64a72e72
test edx, edx
jne 0x64a73150
mov eax, dword [ebp - 0x28]
mov dword [esp + 4], 0
mov esi, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov ebx, dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x30]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
fstp st(1)
fldz
mov ecx, dword [ebp - 0x38]
add edi, 1
faddp st(1)
cmp edi, ecx
mov ecx, 0
cmove edi, ecx
fldz
jmp 0x64a72ef0
fxch st(1)
fxch st(2)
fxch st(3)
fxch st(4)
fxch st(1)
lea esi, [esi]
fld dword [eax + esi]
test edi, 1
jne 0x64a72ff0
fld st(4)
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
fmul st(3)
fdiv st(4)
faddp st(1)
fstp dword [ecx]
mov eax, dword [eax + 8]
fld st(4)
fmul st(2)
fdiv st(3)
fadd dword [eax + esi + 4]
mov eax, dword [ebp - 0x28]
fstp dword [ecx + 4]
fld dword [eax + edi*4]
fsub st(1)
fld st(3)
fsub st(3)
fxch st(1)
fcomi st(1)
jbe 0x64a730c0
fstp st(0)
fstp st(4)
fstp st(4)
fstp st(0)
fstp st(0)
fxch st(1)
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], 1
mov eax, dword [eax + 8]
mov esi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [eax + esi + 4]
mov eax, dword [eax + esi]
mov esi, dword [ebp - 0x30]
mov dword [esi + ecx*8], eax
mov eax, ecx
add eax, 1
mov dword [esi + ecx*8 + 4], edx
mov dword [ebp - 0x1c], eax
jmp 0x64a72e52
cmp eax, 5
jne 0x64a731a8
mov eax, dword [ebp + 0xc]
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov edi, dword [eax + 0x30]
mov ebx, dword [eax + 0x2c]
mov eax, dword fs:[0x18]
lea edx, [edi*4]
mov dword [ebp - 0x38], edi
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov dword [ebp - 0x28], eax
sub esp, 0xc
test eax, eax
je 0x64a72eb9
test edi, edi
jle 0x64a72d70
jmp 0x64a72d54
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x64a72e54
mov esi, dword [ebp - 0x24]
jmp 0x64a72ddc
fld st(4)
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
fmul st(3)
mov edx, dword [ebp - 0x3c]
lea eax, [eax + ecx*8]
mov ecx, dword [ebp - 0x20]
fdiv st(4)
faddp st(1)
fstp dword [eax]
mov ecx, dword [ecx + 8]
fld st(4)
fmul st(2)
fdiv st(3)
fadd dword [ecx + esi + 4]
fstp dword [eax + 4]
xor eax, eax
test edx, edx
je 0x64a73025
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x1c]
test edx, edx
jle 0x64a73080
fstp dword [ebp - 0x48]
mov ecx, dword [ebp + 0x14]
fstp dword [ebp - 0x44]
fstp dword [ebp - 0x40]
fstp dword [ebp - 0x3c]
fstp dword [ebp - 0x1c]
mov dword [esp + 0x10], ecx
mov ecx, edx
xor edx, edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
fld dword [ebp + 0x10]
fstp dword [esp + 4]
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov eax, dword [ebp - 0x30]
call sym._widen_open_figure.part.0.isra.0
fld dword [ebp - 0x48]
fld dword [ebp - 0x44]
fld dword [ebp - 0x40]
fld dword [ebp - 0x3c]
fld dword [ebp - 0x1c]
jmp 0x64a73088
fxch st(4)
fxch st(1)
fxch st(3)
fxch st(1)
mov eax, dword [ebp - 0x28]
fld dword [eax + edi*4]
fsub st(5)
fld st(3)
fsub st(5)
fxch st(1)
fcomi st(1)
jbe 0x64a730e0
fstp st(0)
fstp st(4)
fstp st(0)
fstp st(0)
fstp st(0)
fxch st(1)
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x1c], 0
jmp 0x64a72e52
fstp st(2)
fstp st(0)
fxch st(1)
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], 1
mov eax, dword [eax + 8]
jmp 0x64a72ecc
fstp st(6)
fstp st(0)
fxch st(1)
fxch st(2)
fxch st(3)
fxch st(4)
fxch st(1)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(2)
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x1c], 0
mov eax, dword [eax + 8]
jmp 0x64a72ecc
mov dword [ebp - 0x38], 6
mov eax, 0x18
mov ebx, 0x64abb084
jmp 0x64a72d22
mov dword [ebp - 0x38], 2
mov eax, 8
mov ebx, 0x64abb08c
jmp 0x64a72d22
mov esi, dword [ebp + 8]
xor ebx, ebx
test esi, esi
jne 0x64a7315f
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 0xc]
mov ecx, dword [ebp - 0x3c]
xor eax, eax
test ecx, ecx
je 0x64a7316e
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x10]
lea ecx, [edx - 1]
test ecx, ecx
jle 0x64a72e72
mov edi, dword [ebp + 0x14]
mov dword [esp + 0xc], ebx
xor edx, edx
mov dword [esp + 8], eax
mov dword [esp + 0x10], edi
fld dword [ebp + 0x10]
fstp dword [esp + 4]
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov eax, dword [ebp - 0x30]
call sym._widen_open_figure.part.0.isra.0
jmp 0x64a72e72
mov dword [ebp - 0x38], 2
mov eax, 8
mov ebx, 0x64abb084
jmp 0x64a72d22
mov eax, dword [ebp - 0x28]
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
jmp 0x64a72eb9