Function at 0x64a71930
Capabilities:
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x3c
mov esi, dword [ebp + 0xc]
cmp ecx, 0x12
je 0x64a71ce8
cmp ecx, 0x13
je 0x64a71b40
cmp ecx, 0x11
jne 0x64a71b2f
fld dword [eax + 4]
fld dword [edx + 4]
mov ecx, dword [esi]
mov edi, dword [sym.imp.kernel32.dll_HeapAlloc]
fsub st(1)
fld dword [eax]
fld dword [edx]
mov dword [ebp - 0x2c], ecx
mov eax, dword fs:[0x18]
fsub st(1)
fld st(2)
fmul st(3)
fld st(1)
fmul st(2)
faddp st(1)
fsqrt
fld dword [ebp + 8]
fdiv dword [0x64abb534]
fchs
fmul st(2), st(0)
fxch st(2)
fdiv st(1)
fxch st(4)
fmulp st(2)
fdivp st(1)
fsub st(3), st(0)
fxch st(3)
fadd st(2)
fstp dword [ebp - 0x24]
fsub st(1)
fxch st(1)
fstp dword [ebp - 0x20]
fsub st(1)
fxch st(1)
fstp dword [ebp - 0x1c]
fstp dword [ebp - 0x28]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
fld dword [ebp - 0x1c]
fld dword [ebp - 0x20]
sub esp, 0xc
test eax, eax
mov edx, eax
je 0x64a719fa
fld dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
mov byte [eax + 8], 0
fstp dword [eax]
fld dword [ebp - 0x24]
fstp dword [eax + 4]
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov dword [ecx + 0xc], edx
mov dword [esi], edx
fld dword [ebx + 4]
mov dword [ebp - 0x2c], edx
mov eax, dword fs:[0x18]
fsub st(2)
fsub st(1)
fstp dword [ebp - 0x28]
fld st(0)
fstp dword [ebp - 0x20]
fsubr dword [ebx]
fadd st(1)
fxch st(1)
fstp dword [ebp - 0x1c]
fstp dword [ebp - 0x24]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
fld dword [ebp - 0x1c]
fld dword [ebp - 0x20]
sub esp, 0xc
test eax, eax
mov ecx, eax
je 0x64a71a65
fld dword [ebp - 0x24]
mov edx, dword [ebp - 0x2c]
mov byte [eax + 8], 1
fstp dword [eax]
fld dword [ebp - 0x28]
fstp dword [eax + 4]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov dword [edx + 0xc], ecx
mov dword [esi], ecx
fld dword [ebx + 4]
mov dword [ebp - 0x2c], ecx
mov eax, dword fs:[0x18]
fadd st(2)
fsub st(1)
fstp dword [ebp - 0x28]
fld st(0)
fstp dword [ebp - 0x20]
fadd dword [ebx]
fadd st(1)
fxch st(1)
fstp dword [ebp - 0x1c]
fstp dword [ebp - 0x24]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
fld dword [ebp - 0x1c]
fld dword [ebp - 0x20]
sub esp, 0xc
test eax, eax
mov edx, eax
je 0x64a71ad0
fld dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
mov byte [eax + 8], 1
fstp dword [eax]
fld dword [ebp - 0x28]
fstp dword [eax + 4]
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov dword [ecx + 0xc], edx
mov dword [esi], edx
fld dword [ebx + 4]
mov dword [ebp - 0x24], edx
mov eax, dword fs:[0x18]
fadd st(2)
fadd st(1)
fstp dword [ebp - 0x1c]
fadd dword [ebx]
fsubrp st(1)
fstp dword [ebp - 0x20]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
test eax, eax
je 0x64a71b29
fld dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
mov byte [eax + 8], 1
fstp dword [eax]
fld dword [ebp - 0x1c]
fstp dword [eax + 4]
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
mov dword [edx + 0xc], eax
mov dword [esi], eax
or byte [eax + 8], 0x80
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
fld dword [eax + 4]
fld dword [edx + 4]
mov ecx, dword [esi]
mov edi, dword [sym.imp.kernel32.dll_HeapAlloc]
fsub st(1)
fld dword [eax]
fld dword [edx]
mov dword [ebp - 0x2c], ecx
mov eax, dword fs:[0x18]
fsub st(1)
fld st(2)
fmul st(3)
fld st(1)
fmul st(2)
faddp st(1)
fsqrt
fld dword [ebp + 8]
fchs
fmul st(2), st(0)
fxch st(2)
fdiv st(1)
fst dword [ebp - 0x1c]
fxch st(4)
fmulp st(2)
fdivp st(1)
fst dword [ebp - 0x20]
faddp st(3)
fxch st(2)
fstp dword [ebp - 0x24]
faddp st(1)
fstp dword [ebp - 0x28]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x64a71bcd
fld dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
mov byte [eax + 8], 0
fstp dword [eax]
fld dword [ebp - 0x24]
fstp dword [eax + 4]
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov dword [ecx + 0xc], edx
mov dword [esi], edx
fld dword [ebp - 0x1c]
fadd dword [ebx + 4]
mov dword [ebp - 0x2c], edx
mov eax, dword fs:[0x18]
fstp dword [ebp - 0x24]
fld dword [ebp - 0x20]
fsubr dword [ebx]
fstp dword [ebp - 0x28]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov ecx, eax
test eax, eax
je 0x64a71c28
fld dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
mov byte [eax + 8], 1
fstp dword [eax]
fld dword [ebp - 0x24]
fstp dword [eax + 4]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov dword [edx + 0xc], ecx
mov dword [esi], ecx
fld dword [ebp - 0x20]
fsubr dword [ebx + 4]
mov dword [ebp - 0x2c], ecx
mov eax, dword fs:[0x18]
fstp dword [ebp - 0x24]
fld dword [ebp - 0x1c]
fsubr dword [ebx]
fstp dword [ebp - 0x28]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x64a71c83
fld dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
mov byte [eax + 8], 1
fstp dword [eax]
fld dword [ebp - 0x24]
fstp dword [eax + 4]
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov dword [ecx + 0xc], edx
mov dword [esi], edx
fld dword [ebp - 0x1c]
fsubr dword [ebx + 4]
mov dword [ebp - 0x28], edx
mov eax, dword fs:[0x18]
fstp dword [ebp - 0x24]
fld dword [ebp - 0x20]
fadd dword [ebx]
fstp dword [ebp - 0x1c]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
test eax, eax
je 0x64a71b29
fld dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
mov byte [eax + 8], 1
fstp dword [eax]
fld dword [ebp - 0x24]
fstp dword [eax + 4]
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
mov dword [edx + 0xc], eax
jmp 0x64a71b29
fld dword [eax + 4]
fld dword [edx + 4]
mov edi, dword [sym.imp.kernel32.dll_HeapAlloc]
fsub st(1)
fld dword [eax]
fld dword [edx]
mov edx, dword [esi]
mov eax, dword fs:[0x18]
fsub st(1)
mov dword [ebp - 0x34], edx
fld st(2)
fmul st(3)
fld st(1)
fmul st(2)
faddp st(1)
fsqrt
fld dword [ebp + 8]
fchs
fmul st(2), st(0)
fxch st(2)
fdiv st(1)
fst dword [ebp - 0x1c]
fxch st(4)
fmulp st(2)
fdivp st(1)
fst dword [ebp - 0x20]
fld dword [0x64abb538]
fld st(3)
fmul st(1)
fstp dword [ebp - 0x24]
fmul st(1)
fstp dword [ebp - 0x28]
fxch st(3)
fsubrp st(2)
fxch st(1)
fstp dword [ebp - 0x2c]
faddp st(1)
fstp dword [ebp - 0x30]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov ecx, eax
test eax, eax
je 0x64a71d89
fld dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
mov byte [eax + 8], 0
fstp dword [eax]
fld dword [ebp - 0x2c]
fstp dword [eax + 4]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov dword [edx + 0xc], ecx
mov dword [esi], ecx
fld dword [ebp - 0x1c]
fsubr dword [ebx + 4]
mov dword [ebp - 0x34], ecx
mov eax, dword fs:[0x18]
fadd dword [ebp - 0x28]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x20]
fadd dword [ebx]
fld dword [ebp - 0x24]
faddp st(1)
fstp dword [ebp - 0x30]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x64a71dec
fld dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x2c]
fstp dword [eax + 4]
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov dword [ecx + 0xc], edx
mov dword [esi], edx
fld dword [ebp - 0x20]
fadd dword [ebx + 4]
mov dword [ebp - 0x34], edx
mov eax, dword fs:[0x18]
fsub dword [ebp - 0x24]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x1c]
fadd dword [ebx]
fld dword [ebp - 0x28]
faddp st(1)
fstp dword [ebp - 0x30]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov ecx, eax
test eax, eax
je 0x64a71e4f
fld dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x2c]
fstp dword [eax + 4]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov dword [edx + 0xc], ecx
mov dword [esi], ecx
fld dword [ebp - 0x20]
fadd dword [ebx + 4]
mov dword [ebp - 0x34], ecx
mov eax, dword fs:[0x18]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x1c]
fadd dword [ebx]
fstp dword [ebp - 0x30]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x64a71eaa
fld dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x2c]
fstp dword [eax + 4]
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov dword [ecx + 0xc], edx
mov dword [esi], edx
fld dword [ebp - 0x20]
fadd dword [ebx + 4]
mov dword [ebp - 0x34], edx
mov eax, dword fs:[0x18]
fadd dword [ebp - 0x24]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x1c]
fadd dword [ebx]
fld dword [ebp - 0x28]
fsubp st(1)
fstp dword [ebp - 0x30]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov ecx, eax
test eax, eax
je 0x64a71f0d
fld dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x2c]
fstp dword [eax + 4]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov dword [edx + 0xc], ecx
mov dword [esi], ecx
fld dword [ebp - 0x1c]
fadd dword [ebx + 4]
mov dword [ebp - 0x34], ecx
mov eax, dword fs:[0x18]
fadd dword [ebp - 0x28]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x20]
fsubr dword [ebx]
fld dword [ebp - 0x24]
faddp st(1)
fstp dword [ebp - 0x30]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x64a71f70
fld dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x2c]
fstp dword [eax + 4]
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov dword [ecx + 0xc], edx
mov dword [esi], edx
fld dword [ebp - 0x1c]
fadd dword [ebx + 4]
mov dword [ebp - 0x34], edx
mov eax, dword fs:[0x18]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x20]
fsubr dword [ebx]
fstp dword [ebp - 0x30]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov ecx, eax
test eax, eax
je 0x64a71fcb
fld dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x2c]
fstp dword [eax + 4]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov dword [edx + 0xc], ecx
mov dword [esi], ecx
fld dword [ebp - 0x1c]
fadd dword [ebx + 4]
mov dword [ebp - 0x34], ecx
mov eax, dword fs:[0x18]
fsub dword [ebp - 0x28]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x20]
fsubr dword [ebx]
fld dword [ebp - 0x24]
fsubp st(1)
fstp dword [ebp - 0x30]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x64a7202e
fld dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x2c]
fstp dword [eax + 4]
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov dword [ecx + 0xc], edx
mov dword [esi], edx
fld dword [ebp - 0x20]
fsubr dword [ebx + 4]
mov dword [ebp - 0x34], edx
mov eax, dword fs:[0x18]
fadd dword [ebp - 0x24]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x1c]
fsubr dword [ebx]
fld dword [ebp - 0x28]
fsubp st(1)
fstp dword [ebp - 0x30]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov ecx, eax
test eax, eax
je 0x64a72091
fld dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x2c]
fstp dword [eax + 4]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov dword [edx + 0xc], ecx
mov dword [esi], ecx
fld dword [ebp - 0x20]
fsubr dword [ebx + 4]
mov dword [ebp - 0x34], ecx
mov eax, dword fs:[0x18]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x1c]
fsubr dword [ebx]
fstp dword [ebp - 0x30]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x64a720ec
fld dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x2c]
fstp dword [eax + 4]
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov dword [ecx + 0xc], edx
mov dword [esi], edx
fld dword [ebp - 0x20]
fsubr dword [ebx + 4]
mov dword [ebp - 0x34], edx
mov eax, dword fs:[0x18]
fsub dword [ebp - 0x24]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x1c]
fsubr dword [ebx]
fld dword [ebp - 0x28]
faddp st(1)
fstp dword [ebp - 0x30]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov ecx, eax
test eax, eax
je 0x64a7214f
fld dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x2c]
fstp dword [eax + 4]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov dword [edx + 0xc], ecx
mov dword [esi], ecx
fld dword [ebp - 0x1c]
fsubr dword [ebx + 4]
mov dword [ebp - 0x2c], ecx
mov eax, dword fs:[0x18]
fsub dword [ebp - 0x28]
fstp dword [ebp - 0x28]
fld dword [ebp - 0x20]
fadd dword [ebx]
fld dword [ebp - 0x24]
fsubp st(1)
fstp dword [ebp - 0x24]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov edx, eax
test eax, eax
je 0x64a721b2
fld dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x28]
fstp dword [eax + 4]
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov dword [ecx + 0xc], edx
mov dword [esi], edx
fld dword [ebp - 0x1c]
fsubr dword [ebx + 4]
mov dword [ebp - 0x24], edx
mov eax, dword fs:[0x18]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x20]
fadd dword [ebx]
fstp dword [ebp - 0x20]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
test eax, eax
je 0x64a71b29
fld dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
mov byte [eax + 8], 3
fstp dword [eax]
fld dword [ebp - 0x1c]
fstp dword [eax + 4]
mov ecx, dword [edx + 0xc]
mov dword [eax + 0xc], ecx
mov dword [edx + 0xc], eax
jmp 0x64a71b29